Part Number Hot Search : 
9421A01 31300 7447020 300000 F607K50 53257 SB356G STV7697A
Product Description
Full Text Search
 

To Download CY7C63231 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
 PRELIMINARY
enCoReTM USB CY7C63221/31A
1
CY7C63221/31A enCoReTM USB Low-speed USB Peripheral Controller
Cypress Semiconductor Corporation Document #: 38-08028 Rev. **
*
3901 North First Street
*
San Jose
*
CA 95134 * 408-943-2600 Revised June 3, 2002
FOR
FOR
enCoReTM USB
PRELIMINARY
TABLE OF CONTENTS 1.0 FEATURES ..................................................................................................................................... 5 2.0 FUNCTIONAL OVERVIEW ............................................................................................................. 6 2.1 enCoRe USB - The New USB Standard ....................................................................................... 6 3.0 LOGIC BLOCK DIAGRAM ............................................................................................................. 7 4.0 PIN CONFIGURATIONS ................................................................................................................. 7 5.0 PIN ASSIGNMENTS ....................................................................................................................... 7 6.0 PROGRAMMING MODEL ............................................................................................................... 8 6.1 6.2 6.3 6.4 6.5 6.6 Program Counter (PC) ................................................................................................................... 8 8-bit Accumulator (A) .................................................................................................................... 8 8-bit Index Register (X) .................................................................................................................. 8 8-bit Program Stack Pointer (PSP) ............................................................................................... 8 8-bit Data Stack Pointer (DSP) ...................................................................................................... 8 Address Modes .............................................................................................................................. 9
6.6.1 Data ........................................................................................................................................................ 9 6.6.2 Direct ..................................................................................................................................................... 9 6.6.3 Indexed ..................................................................................................................................................9
CY7C63221/31A
7.0 INSTRUCTION SET SUMMARY ................................................................................................... 10 8.0 MEMORY ORGANIZATION .......................................................................................................... 11 8.1 Program Memory Organization .................................................................................................. 11 8.2 Data Memory Organization ......................................................................................................... 12 8.3 I/O Register Summary ................................................................................................................. 13 9.0 CLOCKING .................................................................................................................................... 14 9.1 Internal / External Oscillator Operation ..................................................................................... 15 9.2 External Oscillator ....................................................................................................................... 15 10.0 RESET ......................................................................................................................................... 15 10.1 Low Voltage Reset (LVR) .......................................................................................................... 16 10.2 Brown Out Reset (BOR) ............................................................................................................ 16 10.3 Watch Dog Reset (WDR) ........................................................................................................... 16 11.0 SUSPEND MODE ........................................................................................................................ 17 11.1 Clocking Mode on Wake-up from Suspend ............................................................................. 17 11.2 Wake-up Timer ........................................................................................................................... 18 12.0 GENERAL PURPOSE I/O PORTS ............................................................................................. 19 12.1 Auxiliary Input Port .................................................................................................................... 21 13.0 USB SERIAL INTERFACE ENGINE (SIE) ................................................................................. 21 13.1 USB Enumeration ...................................................................................................................... 21 13.2 USB Port Status and Control .................................................................................................... 21 14.0 USB DEVICE ............................................................................................................................... 23 14.1 14.2 14.3 14.4 USB Address Register .............................................................................................................. 23 USB Control Endpoint ............................................................................................................... 23 USB Non-Control Endpoints ..................................................................................................... 24 USB Endpoint Counter Registers ............................................................................................ 24
Page 2 of 43
Document #: 38-08028 Rev. **
FOR
FOR
enCoReTM USB
PRELIMINARY CY7C63221/31A
15.0 USB REGULATOR OUTPUT ...................................................................................................... 24 16.0 PS/2 OPERATION ....................................................................................................................... 25 17.0 12-BIT FREE-RUNNING TIMER ................................................................................................. 26 18.0 PROCESSOR STATUS AND CONTROL REGISTER ............................................................... 27 19.0 INTERRUPTS .............................................................................................................................. 28 19.1 Interrupt Vectors ........................................................................................................................ 29 19.2 Interrupt Latency ....................................................................................................................... 30 19.3 Interrupt Sources ....................................................................................................................... 30
19.3.1 19.3.2 19.3.3 19.3.4 19.3.5 USB Bus Reset or PS/2 Activity ...................................................................................................... 30 Free-Running Timer Interrupts ........................................................................................................ 30 USB Endpoint Interrupts .................................................................................................................. 30 GPIO Interrupt ...................................................................................................................................30 Wake-up Interrupt ............................................................................................................................. 31
20.0 USB MODE TABLES .................................................................................................................. 32 21.0 ABSOLUTE MAXIMUM RATINGS ............................................................................................. 36 22.0 DC CHARACTERISTICS ............................................................................................................ 37 23.0 SWITCHING CHARACTERISTICS ............................................................................................. 38 25.0 PACKAGE DIAGRAMS ............................................................................................................. 41 24.0 ORDERING INFORMATION ....................................................................................................... 41
Document #: 38-08028 Rev. **
Page 3 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
LIST OF FIGURES Figure 8-1. Program Memory Space with Interrupt Vector Table .................................................. 11 Figure 9-1. Clock Oscillator On-chip Circuit ................................................................................... 14 Figure 9-2. Clock Configuration Register (Address 0xF8) ............................................................. 14 Figure 10-1. Watch Dog Reset (WDR) (Address 0x26) .................................................................... 16 Figure 12-1. Block Diagram of GPIO Port (one pin shown) ........................................................... 19 Figure 12-2. Port 0 Data (Address 0x00) .......................................................................................... 20 Figure 12-3. Port 1 Data (Address 0x01) .......................................................................................... 20 Figure 12-4. GPIO Port 0 Mode0 Register (Address 0x0A) ............................................................ 20 Figure 12-5. GPIO Port 0 Mode1 Register (Address 0x0B) ............................................................ 20 Figure 12-6. GPIO Port 1 Mode0 Register (Address 0x0C) ............................................................ 20 Figure 12-7. GPIO Port 1 Mode1 Register (Address 0x0D) ............................................................ 20 Figure 12-8. Port 2 Data Register (Address 0x02) .......................................................................... 21 Figure 13-1. USB Status and Control Register (Address 0x1F) .................................................... 22 Figure 14-1. USB Device Address Register (Address 0x10) .......................................................... 23 Figure 14-2. USB EP0 Mode Register (Address 0x12) .................................................................... 23 Figure 14-3. USB Endpoint EP1 Mode Registers (Addresses 0x14) ............................................. 24 Figure 14-4. USB Device Counter Registers (Addresses 0x11h, 0x13) ........................................ 24 Figure 16-1. Diagram of USB-PS/2 System Connections ............................................................... 25 Figure 17-1. Timer LSB Register (Address 0x24) ........................................................................... 26 Figure 17-2. Timer MSB Register (Address 0x25) ........................................................................... 26 Figure 17-3. Timer Block Diagram .................................................................................................... 26 Figure 18-1. Processor Status and Control Register (Address 0xFF) .......................................... 27 Figure 19-1. Global Interrupt Enable Register (Address 0x20) ...................................................... 28 Figure 19-2. USB End Point Interrupt Enable Register (Address 0x21) ....................................... 28 Figure 19-3. Interrupt Controller Logic Block Diagram .................................................................. 29 Figure 19-4. Port 0 Interrupt Enable Register (Address 0x04) ....................................................... 30 Figure 19-5. Port 1 Interrupt Enable Register (Address 0x05) ....................................................... 31 Figure 19-6. Port 0 Interrupt Polarity Register (Address 0x06) ..................................................... 31 Figure 19-7. Port 1 Interrupt Polarity Register (Address 0x07) ..................................................... 31 Figure 19-8. GPIO Interrupt Diagram ............................................................................................... 31 Figure 23-1. Clock Timing ................................................................................................................. 39 Figure 23-2. USB Data Signal Timing ............................................................................................... 39 Figure 23-3. Receiver Jitter Tolerance ............................................................................................. 39 Figure 23-4. Differential to EOP Transition Skew and EOP Width ................................................ 40 Figure 23-5. Differential Data Jitter .................................................................................................. 40 LIST OF TABLES Table 8-1. I/O Register Summary ...................................................................................................... 13 Table 11-1. Wake-up Timer Adjust Settings .................................................................................... 18 Table 12-1. Ports 0 Output Control Truth Table .............................................................................. 19 Table 13-1. Control Modes to Force D+/D- Outputs ....................................................................... 22 Table 19-1. Interrupt Vector Assignments ....................................................................................... 29 Table 20-1. USB Register Mode Encoding ...................................................................................... 32 Table 20-2. Decode table for Table 20-3: "Details of Modes for Differing Traffic Conditions" ... 33 Table 20-3. Details of Modes for Differing Traffic Conditions ....................................................... 34
CY7C63221/31A
Document #: 38-08028 Rev. **
Page 4 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
1.0 Features
CY7C63221/31A
* enCoReTM USB - enhanced Component Reduction -- Internal oscillator eliminates the need for an external crystal or resonator -- Interface can auto-configure to operate as PS/2 or USB without the need for external components to switch between modes (no GPIO pins needed to manage dual mode capability) -- Internal 3.3V regulator for USB pull-up resistor -- Configurable GPIO for real-world interface without external components * Flexible, cost-effective solution for applications that combine PS/2 and low-speed USB, such as mice, gamepads, joysticks, and many others * USB Specification Compliance -- Conforms to USB Specification, Version 2.0 -- Conforms to USB HID Specification, Version 1.1 -- Supports 1 Low-Speed USB device address -- Supports 1 control endpoint and 1 data endpoint -- Integrated USB transceiver * 3.3V regulated output for USB pull-up resistor * 8-bit RISC microcontroller -- Harvard architecture -- 12-MHz internal CPU clock * Internal memory -- 96 bytes of RAM -- 3 Kbytes of EPROM * Interface can auto-configure to operate as PS/2 or USB -- No external components for switching between PS/2 and USB modes -- No GPIO pins needed to manage dual mode capability * I/O ports -- Up to 10 versatile General Purpose I/O (GPIO) pins, individually configurable -- High current drive on any GPIO pin: 50 mA/pin current sink -- Each GPIO pin supports high-impedance inputs, internal pull-ups, open drain outputs, or traditional CMOS outputs -- Maskable interrupts on all I/O pins -- XTALIN, XTALOUT and VREG can be configured as additional input pins * Internal low-power wake-up timer during suspend mode -- Periodic wake-up with no external components * Optional 6-MHz internal oscillator mode -- Allows fast start-up from suspend mode * Watch Dog timer (WDT) * Low-voltage Reset at 3.75V * Internal brown-out reset for suspend mode * Improved output drivers to reduce EMI * Operating voltage from 4.0V to 5.5VDC * Operating temperature from 0 to 70 degrees Celsius * CY7C63221A available in 16-pin PDIP * CY7C63231A available in 18-pin SOIC, 18-pin PDIP * Industry-standard programmer support
Document #: 38-08028 Rev. **
Page 5 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
2.0
2.1
CY7C63221/31A
Functional Overview
enCoRe USB - The New USB Standard
Cypress has re-invented its leadership position in the low-speed USB market with a new family of innovative microcontrollers. Introducing...enCoRe USB--"enhanced Component Reduction." Cypress has leveraged its design expertise in USB solutions to create a new family of low-speed USB microcontrollers that will enable peripheral developers to design new products with a minimum number of components. At the heart of the Cypress enCoRe USB technology is the breakthrough design of a crystalless oscillator. By integrating the oscillator into the chip, an external crystal or resonator is no longer needed. We have also integrated other external components commonly found in low-speed USB applications such as pull-up resistors, wake-up circuitry, and a 3.3V regulator. All of this adds up to a lower system cost. The CY7C632XXA family is comprised of 8-bit RISC One Time Programmable (OTP) microcontrollers. The instruction set has been optimized specifically for USB and PS/2 operations, although the microcontrollers can be used for a variety of other embedded applications. The CY7C632XXA features up to 10 general purpose I/O (GPIO) pins to support USB, PS/2 and other applications. The I/O pins are grouped into two ports (Port 0 to 1) where each pin can be individually configured as inputs with internal pull-ups, open drain outputs, or traditional CMOS outputs with programmable drive strength of up to 50 mA output drive. Additionally, each I/O pin can be used to generate a GPIO interrupt to the microcontroller. The CY7C632XXA microcontrollers feature an internal 5% accurate 6-MHz clock source. In addition, during USB transmissions, the internal clock automatically tunes itself to USB timing requirements (6 MHz 1.5%). This clock generator has been optimized to reduce clock-related noise emissions (EMI), and provides the 6-MHz and 12-MHz clocks that remain internal to the microcontroller. When using the internal oscillator, XTALIN and XTALOUT can be configured as additional input pins that can be read on port 2. Optionally, an external 6-MHz ceramic resonator can be used to provide a higher precision reference if needed. The CY7C632XXA is offered with 3 Kbytes of EPROM to minimize cost, and has 96 bytes of data RAM for stack space, user variables, and USB endpoint FIFOs. The CY7C632xxA family includes low-voltage reset logic, a Watch Dog timer, a vectored interrupt controller, and a 12-bit freerunning timer. The low-voltage reset (LVR) logic detects when power is applied to the device, resets the logic to a known state, and begins executing instructions at EPROM address 0x0000. LVR will also reset the part when VCC drops below the operating voltage range. The Watch Dog timer can be used to ensure the firmware never gets stalled for more than approximately 8 ms. The microcontroller supports 7 maskable interrupts in the vectored interrupt controller. Interrupt sources include the USB BusReset, the 128-s and 1.024-ms outputs from the free-running timer, two USB endpoints, an internal wake-up timer and the GPIO port. The timers bits cause periodic interrupts when enabled. The USB endpoints interrupt after USB transactions complete on the bus. The GPIO port has a level of masking to select which GPIO inputs can cause a GPIO interrupt. For additional flexibility, the input transition polarity that causes an interrupt is programmable for each GPIO pin. The interrupt polarity can be either rising or falling edge. The free-running 12-bit timer clocked at 1 MHz provides two interrupt sources as noted above (128 s and 1.024 ms). The timer can be used to measure the duration of an event under firmware control by reading the timer at the start and end of an event, and subtracting the two values. The CY7C632XXA includes an integrated USB serial interface engine (SIE). The hardware supports one USB device address with two endpoints. The SIE allows the USB host to communicate with the function integrated into the microcontroller. A 3.3V regulated output pin provides a pull-up source for the external USB resistor on the D- pin. When using an external voltage regulator VREG can be configured as input pin that can be read on port 2 (P2.0). The USB D+ and D- USB pins can alternately be used as PS/2 SCLK and SDATA signals, so that products can be designed to respond to either USB or PS/2 modes of operation. PS/2 operation is supported with internal pull-up resistors on SCLK and SDATA, the ability to disable the regulator output pin, and an interrupt to signal the start of PS/2 activity. No external components are necessary for dual USB and PS/2 systems, and no GPIO pins need to be dedicated to switching between modes. Slow edge rates operate in both modes to reduce EMI.
Document #: 38-08028 Rev. **
Page 6 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
3.0 Logic Block Diagram
XTALIN/P2.1 XTALOUT XTALIN/P2.1 XTALOUT/P2.2
CY7C63221/31A
Internal Oscillator
Xtal Oscillator
W ake-Up Timer
RAM 96 Bytes
12-bit Timer
EPROM 3 Kbytes
8-bit RISC Core
Brown-Out Reset Watch Dog Timer Low Voltage Reset
Interrupt Controller
USB Engine
Port 0 GPIO
Port 1 GPIO
3.3V Regulator
USB & PS/2 Xcvr
VREG/P2.0
D+ D-
P0.0-P0.7 P1.0-P1.1
4.0
Pin Configurations
CY7C63221A 16-pin PDIP
P0.0 P0.1 P0.2 P0.3 VSS VPP VREG/P2.0 XTALIN/P2.1 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9
(Top View)
CY7C63231A 18-pin SOIC/PDIP
P0.0 P0.1 P0.2 P0.3 P1.0 VSS VPP VREG/P2.0 XTALIN/P2.1 1 2 3 4 5 6 7 8 9 18 17 16 15 14 13 12 11 10 P0.4 P0.5 P0.6 P0.7 P1.1 D+/SCLK D-/SDATA VCC XTALOUT/P2.2
P0.4 P0.5 P0.6 P0.7 D+/SCLK D-/SDATA VCC XTALOUT/P2.2
5.0
Name
Pin Assignments
CY7C63221 I/O I/O I/O 16-Pin 11 12 1, 2, 3, 4, 13, 14, 15, 16 CY7C63231 18-Pin 12 13 1, 2, 3, 4, 15, 16, 17, 18 5,14, Description USB differential data lines (D- and D+), or PS/2 clock and data signals (SDATA and SCLK) GPIO Port 0 capable of sinking up to 50 mA/pin, or sinking controlled low or high programmable current. Can also source 2 mA current, provide a resistive pull-up, or serve as a high-impedance input. GPIO Port 1 capable of sinking up to 50 mA/pin, or sinking controlled low or high programmable current. Can also source 2 mA current, provide a resistive pull-up, or serve as a high-impedance input. 6-MHz ceramic resonator or external clock input, or P2.1 input 6-MHz ceramic resonator return pin or internal oscillator output, or P2.2 input Programming voltage supply, ground for normal operation Voltage supply Voltage supply for 1.3-k USB pull-up resistor (3.3V nominal). Also serves as P2.0 input. Ground Page 7 of 43
D-/SDATA, D+/SCLK P0[7:0]
P1[1:0]
I/O
XTALIN/P2.1 XTALOUT/P2.2 VPP VCC VREG/P2.0 VSS
IN IN
8 9 6 10 7 5
9 10 7 11 8 6
Document #: 38-08028 Rev. **
FOR
FOR
enCoReTM USB
PRELIMINARY
6.0 Programming Model
CY7C63221/31A
Refer to the CYASM Assembler User's Guide for more details on firmware operation with the CY7C632XX microcontrollers.
6.1
Program Counter (PC)
The 12-bit program counter (PC) allows access for 3 Kbytes of EPROM using the CY7C632XXA architecture. The program counter is cleared during reset, such that the first instruction executed after a reset is at address 0x0000. This is typically a jump instruction to a reset handler that initializes the application. The lower 8 bits of the program counter are incremented as instructions are loaded and executed. The upper 5 bits of the program counter are incremented by executing an XPAGE instruction. As a result, the last instruction executed within a 256-byte "page" of sequential code should be an XPAGE instruction. The assembler directive "XPAGEON" will cause the assembler to insert XPAGE instructions automatically. As instructions can be either one or two bytes long, the assembler may occasionally need to insert a NOP followed by an XPAGE for correct execution. The program counter of the next instruction to be executed, carry flag, and zero flag are saved as two bytes on the program stack during an interrupt acknowledge or a CALL instruction. The program counter, carry flag, and zero flag are restored from the program stack only during a RETI instruction. Please note the program counter cannot be accessed directly by the firmware. The program stack can be examined by reading SRAM from location 0x00 and up.
6.2
8-bit Accumulator (A)
The accumulator is the general-purpose, do-everything register in the architecture where results are usually calculated.
6.3
8-bit Index Register (X)
The index register "X" is available to the firmware as an auxiliary accumulator. The X register also allows the processor to perform indexed operations by loading an index value into X.
6.4
8-bit Program Stack Pointer (PSP)
During a reset, the program stack pointer (PSP) is set to zero. This means the program "stack" starts at RAM address 0x00 and "grows" upward from there. Note the program stack pointer is directly addressable under firmware control, using the MOV PSP,A instruction. The PSP supports interrupt service under hardware control and CALL, RET, and RETI instructions under firmware control. During an interrupt acknowledge, interrupts are disabled and the program counter, carry flag, and zero flag are written as two bytes of data memory. The first byte is stored in the memory addressed by the program stack pointer, then the PSP is incremented. The second byte is stored in memory addressed by the program stack pointer and the PSP is incremented again. The net effect is to store the program counter and flags on the program "stack" and increment the program stack pointer by two. The return from interrupt (RETI) instruction decrements the program stack pointer, then restores the second byte from memory addressed by the PSP. The program stack pointer is decremented again and the first byte is restored from memory addressed by the PSP. After the program counter and flags have been restored from stack, the interrupts are enabled. The effect is to restore the program counter and flags from the program stack, decrement the program stack pointer by two, and re-enable interrupts. The call subroutine (CALL) instruction stores the program counter and flags on the program stack and increments the PSP by two. The return from subroutine (RET) instruction restores the program counter, but not the flags, from program stack and decrements the PSP by two.
6.5
8-bit Data Stack Pointer (DSP)
The data stack pointer (DSP) supports PUSH and POP instructions that use the data stack for temporary storage. A PUSH instruction will pre-decrement the DSP, then write data to the memory location addressed by the DSP. A POP instruction will read data from the memory location addressed by the DSP, then post-increment the DSP. During a reset, the Data Stack Pointer will be set to zero. A PUSH instruction when DSP equal zero will write data at the top of the data RAM (address 0xFF). This would write data to the memory area reserved for a FIFO for USB endpoint 0. In non-USB applications, this works fine and is not a problem. For USB applications, the firmware should set the DSP to an appropriate location to avoid a memory conflict with RAM dedicated to USB FIFOs. Since there are only 80 bytes of RAM available (except Endpoint FIFOs) the DSP should be set between 0x00 and 0x4Fh. The memory requirements for the USB endpoints are shown in Section 8.2. For example, assembly instructions to set the DSP to 20h (giving 32 bytes for program and data stack combined) are shown below: MOV A,20h ; Move 20 hex into Accumulator (must be D8h or less to avoid USB FIFOs) SWAP A,DSP ; swap accumulator value into DSP register Document #: 38-08028 Rev. ** Page 8 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
6.6 Address Modes
CY7C63221/31A
The CY7C632XXA microcontroller supports three addressing modes for instructions that require data operands: data, direct, and indexed. 6.6.1 Data
The "Data" address mode refers to a data operand that is actually a constant encoded in the instruction. As an example, consider the instruction that loads A with the constant 0x30: * MOV A, 30h This instruction will require two bytes of code where the first byte identifies the "MOV A" instruction with a data operand as the second byte. The second byte of the instruction will be the constant "0xE8h". A constant may be referred to by name if a prior "EQU" statement assigns the constant value to the name. For example, the following code is equivalent to the example shown above: * DSPINIT: EQU 30h * MOV A,DSPINIT 6.6.2 Direct
"Direct" address mode is used when the data operand is a variable stored in SRAM. In that case, the one byte address of the variable is encoded in the instruction. As an example, consider an instruction that loads A with the contents of memory address location 0x10h: * MOV A, [10h] In normal usage, variable names are assigned to variable addresses using "EQU" statements to improve the readability of the assembler source code. As an example, the following code is equivalent to the example shown above: * buttons: EQU 10h * MOV A,[buttons] 6.6.3 Indexed
"Indexed" address mode allows the firmware to manipulate arrays of data stored in SRAM. The address of the data operand is the sum of a constant encoded in the instruction and the contents of the "X" register. In normal usage, the constant will be the "base" address of an array of data and the X register will contain an index that indicates which element of the array is actually addressed: * array: EQU 10h * MOV X,3 * MOV A,[x+array] This would have the effect of loading A with the fourth element of the SRAM "array" that begins at address 0x10h. The fourth element would be at address 0x13h.
Document #: 38-08028 Rev. **
Page 9 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
7.0 Instruction Set Summary
MNEMONIC HALT ADD A,expr ADD A,[expr] ADD A,[X+expr] ADC A,expr ADC A,[expr] ADC A,[X+expr] SUB A,expr SUB A,[expr] SUB A,[X+expr] SBB A,expr SBB A,[expr] SBB A,[X+expr] OR A,expr OR A,[expr] OR A,[X+expr] AND A,expr AND A,[expr] AND A,[X+expr] XOR A,expr XOR A,[expr] XOR A,[X+expr] CMP A,expr CMP A,[expr] CMP A,[X+expr] MOV A,expr MOV A,[expr] MOV A,[X+expr] MOV X,expr MOV X,[expr] reserved XPAGE MOV A,X MOV X,A MOV PSP,A CALL JMP CALL JZ JNZ addr addr addr addr addr data direct index data direct index data direct index data direct index data direct index data direct index data direct index data direct index data direct index data direct operand opcode 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 40 41 60 50 - 5F 80-8F 90-9F A0-AF B0-BF 4 4 4 4 10 5 10 5 5 JC JNC JACC INDEX addr addr addr addr C0-CF D0-DF E0-EF F0-FF 5 5 7 14 Page 10 of 43 7 4 6 7 4 6 7 4 6 7 4 6 7 4 6 7 4 6 7 4 6 7 5 7 8 4 5 6 4 5 cycles NOP INC A INC X INC [expr] INC [X+expr] DEC A DEC X DEC [expr] DEC [X+expr] IORD expr IOWR expr POP A POP X PUSH A PUSH X SWAP A,X SWAP A,DSP MOV [expr],A MOV [X+expr],A OR [expr],A OR [X+expr],A AND [expr],A AND [X+expr],A XOR [expr],A XOR [X+expr],A IOWX [X+expr] CPL ASL ASR RLC RRC RET DI EI RETI direct index direct index direct index direct index index acc x direct index acc x direct index address address MNEMONIC operand opcode 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 70 72 73 4 4 4 7 8 4 4 7 8 5 5 4 4 5 5 5 5 5 6 7 8 7 8 7 8 6 4 4 4 4 4 8 4 4 8 cycles
CY7C63221/31A
Refer to the CYASM Assembler User's Guide for detailed information on these instructions.
Document #: 38-08028 Rev. **
FOR
FOR
enCoReTM USB
PRELIMINARY
8.0
8.1
CY7C63221/31A
Memory Organization
Program Memory Organization
After reset 12-bit PC Address 0x0000 0x0002 0x0004 0x0006 0x0008 0x000A 0x000C 0x000E 0x0010 0x0012 0x0014 0x0016 0x0018 Program execution begins here after a reset. USB Bus Reset interrupt vector 128-s timer interrupt vector 1.024-ms timer interrupt vector USB endpoint 0 interrupt vector USB endpoint 1 interrupt vector Reserved Reserved Reserved Reserved GPIO interrupt vector Wake-up interrupt vector Program Memory begins here
0x0BDF
(3K - 32 bytes) 3 KB PROM ends here
Figure 8-1. Program Memory Space with Interrupt Vector Table
Document #: 38-08028 Rev. **
Page 11 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
8.2 Data Memory Organization
CY7C63221/31A
The CY7C632XXA microcontroller provides 96 bytes of data RAM. In normal usage, the SRAM is partitioned into four areas: program stack, data stack, user variables and USB endpoint FIFOs as shown below: After reset 8-bit DSP 8-bit PSP (Move DSP) Address 0x00
Program Stack Growth
8-bit DSP
user selected User Variables 0x4F
Data Stack Growth
0xF0 USB FIFO for Address A endpoint 1 0xF8 USB FIFO for Address A endpoint 0 Top of RAM Memory 0xFF
Document #: 38-08028 Rev. **
Page 12 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
8.3 I/O Register Summary
CY7C63221/31A
I/O registers are accessed via the I/O Read (IORD) and I/O Write (IOWR, IOWX) instructions. IORD reads the selected port into the accumulator. IOWR writes data from the accumulator to the selected port. Indexed I/O Write (IOWX) adds the contents of X to the address in the instruction to form the port address and writes data from the accumulator to the specified port. Note that specifying address 0 with IOWX (e.g., IOWX 0h) means the I/O port is selected solely by the contents of X. Note: All bits of all registers are cleared to all zeros on reset, except the Processor Status and Control Register (address 0xFF). All registers not listed are reserved, and should never be written by firmware. All bits marked as reserved should always be written as 0. Table 8-1. I/O Register Summary Register Name Port 0 Data Port 1 Data Port 2 Data Port 0 Interrupt Enable Port 1 Interrupt Enable Port 0 Interrupt Polarity Port 1 Interrupt Polarity Port 0 Mode0 Port 0 Mode1 Port 1 Mode0 Port 1 Mode1 USB Device Address EP0 Counter Register EP0 Mode Register EP1 Counter Register EP1 Mode Register USB Status & Control Global Interrupt Enable Endpoint Interrupt Enable Timer (LSB) Timer (MSB) WDR Clear Clock Configuration Processor Status & Control I/O Address 0x00 0x01 0x02 0x04 0x05 0x06 0x07 0x0A 0x0B 0x0C 0x0D 0x10 0x11 0x12 0x13 0x14 0x1F 0x20 0x21 0x24 0x25 0x26 0xF8 0xFF Read/Write R/W R/W R W W W W W W W W R/W R/W R/W R/W R/W R/W R/W R/W R R W R/W R/W Default 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 USB Device Address register USB Endpoint 0 counter register USB Endpoint 0 configuration register USB Endpoint 1 counter register USB Endpoint 1 configuration register USB status and control register Global interrupt enable register USB endpoint interrupt enables Lower 8 bits of free-running timer (1 MHz) Upper 4 bits of free-running timer Watch Dog Reset clear Internal / External Clock configuration register Controls output configuration for Port 1 GPIO Port 0 GPIO Port 1 Auxiliary input register for D+, D-, VREG, XTALIN, XTALOUT Interrupt enable for pins in Port 0 Interrupt enable for pins in Port 1 Interrupt polarity for pins in Port 0 Interrupt polarity for pins in Port 1 Controls output configuration for Port 0 Function Fig. 12-2 12-3 12-8 19-4 19-5 19-6 19-7 12-4 12-5 12-6 12-7 14-1 14-4 14-2 14-4 14-3 13-1 19-1 19-2 17-1 17-2 9-2 18-1
See sec- Processor status and control tion 18.0
Document #: 38-08028 Rev. **
Page 13 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
9.0 Clocking
CY7C63221/31A
The chip can be clocked from either the internal on-chip clock, or from an oscillator based on an external resonator/crystal, as shown in Figure 9-1. No additional capacitance is included on chip at the XTALIN/OUT pins. Operation is controlled by the Clock Configuration Register, Figure 9-2.
Int Clk Output Disable Internal Osc Port 2.2 Ext Clk Enable XTALOUT
Clk2x (12 MHz) (to Microcontroller) Clk1x (6 MHz) (to USB SIE) Port 2.1
Clock Doubler
XTALIN
Figure 9-1. Clock Oscillator On-chip Circuit
7 R/W Ext. Clock Resume Delay
6 R/W Wake-up Timer Adjust Bit 2
5 R/W Wake-up Timer Adjust Bit 1
4 R/W Wake-up Timer Adjust Bit 0
3 R/W Low Voltage Reset Disable
2 R/W
1 R/W
0 R/W External Oscillator Enable
Precision Internal Clock USB Clocking Output Enable Disable
Figure 9-2. Clock Configuration Register (Address 0xF8) All bits of the Clock Configuration Register reset to 0. Reserved bits must always be written as a 0. Setting External Oscillator Enable (bit 0) high causes the part to switch to external clock mode, as described in Section 9.1. (If the bit is already set, writing a `1' again has no effect.) Clearing this bit has no immediate effect, although the state of this bit is used when waking out of suspend mode to select between internal and external clock. When this bit is cleared XTALIN will be configured as an input with a weak pull-down and can be used as a GPIO input (P2.1). The Internal Clock Output Disable (bit 1) can be set to 1 to keep the internal clock from driving out to XTALOUT. If set, XTALOUT will be configured as an input with a weak pull-down and can be used as a GPIO input (P2.2). This bit has no effect when the external oscillator is enabled. The Precision USB Clocking Enable (bit 2) only affects operation in Internal Oscillator Mode. In that mode, this bit must be set to 1 to cause the internal clock to automatically precisely tune to USB timing requirements (6 MHz 1.5%). The frequency may have a looser initial tolerance at power-up, but all USB transmissions from the chip will meet the USB specification. The Low Voltage Reset Disable (bit 3) disables the LVR circuit when set to 1. See Section 10.1. The Wake-up Timer Adjust Bits (bits 6:4) are used to adjust the Wake-up timer period, as described in Section 11.2. The Resume Delay (bit 7) selects the delay time when switching to the external oscillator, or when waking from suspend mode with the external oscillator enabled. The delay is 128 s when this bit is 0, and 4 ms when this bit is 1. The shorter time is adequate for operation with ceramic resonators, while the longer time is preferred for start-up with a crystal. (These times do not include an initial oscillator start-up time which depends on the resonating element. This time is typically 50 -100 s for ceramic resonators and 1-10 ms for crystals). When waking from suspend mode with the internal oscillator, the delay time is only 8 s in addition to a delay of approximately 1 s for the oscillator to start. Document #: 38-08028 Rev. ** Page 14 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
9.1 Internal / External Oscillator Operation
CY7C63221/31A
The internal oscillator provides an operating clock, factory set to a nominal frequency of 6 MHz. This clock requires no external components. At power-up, the chip operates from the internal clock. In this mode, the internal clock is buffered and driven to the XTALOUT pin by default, and the state of the XTALIN Pin can be read at Port 2.1. While the internal clock is enabled, its output can be disabled at the XTALOUT pin by setting the Internal Clock Output Disable bit of the Clock Configuration Register; in this configuration XTALOUT pin can be used as a GPIO input and its state can be read at Port 2.2. Setting bit 0 of the Clock Configuration Register disables the internal clock, and halts the part while the external resonator/crystal oscillator is started. The steps involved in switching from Internal to External Clock mode are as follows: 1. At reset, chip begins operation using the internal clock. 2. Firmware sets Bit 0 of the Clock Configuration Register. For example, mov A, 1h iowr F8h ; Set Bit 0 (External Oscillator Enable); bit 7 cleared gives faster start-up ; Write to Clock Configuration Register
3. Internal clocking is halted, the internal oscillator is disabled, and the external clock oscillator is enabled. 4. After the external clock becomes stable, chip clocks are re-enabled using the external clock signal. (Note that the time for the external clock to become stable depends on the external resonating device; see next section.) 5. After an additional delay the CPU is released to run. This delay depends on the state of the Ext. Clock Resume Delay bit of the Clock Configuration Register. The time is 128 s if the bit is 0, or 4 ms if the bit is 1. 6. Once the chip has been set to external oscillator, it can only return to internal clock when waking from suspend mode. Clearing bit 0 of the Clock Configuration Register will not re-enable internal clock mode until suspend mode is entered. See Section 11.0 for more details on suspend mode operation. If the Internal Clock is enabled, the XTALIN can serve as a general purpose input, and its state can be read at Port 2, Bit 1 (P2.1). Refer to Figure 12-8 for the Port 2 data register. In this mode, there is a weak pull-down at the XTALIN pin. This input cannot provide an interrupt source to the CPU.
9.2
External Oscillator
The user can connect a low-cost ceramic resonator or an external oscillator to the XTALIN / XTALOUT pins to provide a precise reference frequency for the chip clock, as shown in Figure 9-1. The only external components required are a ceramic resonator or crystal and any associated capacitors. To run from the external resonator, Bit 0 of the Clock Configuration Register must be set to 1, as explained in the previous section. Start up times for the external oscillator depend on the resonating device. Ceramic resonator based oscillators typically start in less than 100 s, while crystal-based oscillators take longer, typically 1 to 10 ms. Board capacitance should be minimized on the XTALIN and XTALOUT pins by keeping the traces as short as possible. There is no additional capacitance on-chip at the clock pins, so an external ceramic resonator must include appropriate capacitors. An external 6-MHz clock can be applied to the XTALIN pin if the XTALOUT pin is left open.
10.0
Reset
The USB Controller supports three types of resets. The effects of the reset are listed below. The reset types are: 1. Low-voltage Reset (LVR) 2. Brown Out Reset (BOR) 3. Watch Dog Reset (WDR) The occurrence of a reset is recorded in the Processor Status and Control Register (see Figure 18-1). Bits 4 and 6 are used to record the occurrence of LVR/BOR and WDR respectively. The firmware can interrogate these bits to determine the cause of a reset. The microcontroller begins execution from ROM address 0x0000 after a LVR, BOR or WDR reset. Although this looks like interrupt vector 0, there is an important difference. Reset processing does NOT push the program counter, carry flag, and zero flag onto program stack. Attempting to execute either a RET or RETI in the reset handler will cause unpredictable execution results. The following events take place on reset. More details on the various resets are given in the following sections. 1. All registers are reset to their default states (all bits cleared, except in Processor Status and Control Register). 2. GPIO and USB pins are set to high-impedance state. 3. The VREG pin is set to high-impedance state. 4. Interrupts are disabled. 5. USB operation is disabled and must be enabled by firmware if desired, as explained in Section 14.1. Document #: 38-08028 Rev. ** Page 15 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY CY7C63221/31A
6. For a BOR or LVR, the external oscillator is disabled and Internal Clock mode is activated, followed by a time-out period tSTART (24 ms minimum) for VCC to stabilize. A WDR does not change the clock mode, and there is no delay for VCC stabilization on a WDR. Note that the External Oscillator Enable (Bit 0, Figure 9-2) will be cleared by a WDR, but it does not take effect until suspend mode is entered. 7. The Program Stack Pointer (PSP) and Data Stack Pointer (DSP) reset to address 0x00. (Firmware should move the DSP for USB applications, as explained in Section 6.5.) 8. Program execution begins at address 0x0000 (after the appropriate time-out period).
10.1
Low-Voltage Reset (LVR)
The CY7C632XXA enters a partial suspend state when VCC is first applied to the chip. The internal oscillator is started and the Low-Voltage Reset (LVR) signal is initially asserted at power-up until VCC has risen above VLVR. At that point, the LVR is deasserted and an internal counter starts counting. After tSTART the partial suspend state ends and program execution begins from address 0x0000. This provides time for VCC to stabilize before the part executes code. As long as the LVR is enabled, this reset sequence repeats whenever the VCC pin voltage drops below VLVR. The LVR can be disabled by firmware by setting the Low Voltage Reset Disable bit in the Clock Configuration Register. In addition, the LVR is automatically disabled in suspend mode to save power. LVR becomes active again (if enabled) once the suspend mode ends. Whenever LVR is disabled (i.e., by firmware or during suspend mode), a secondary low-voltage monitor (BOR) is active, as described in the next section. The LVR/BOR bit, bit 4 of the Processor Status and Control Register (Figure 18-1), is set to "1" to indicate that one of these resets has occurred.
10.2
Brown Out Reset (BOR)
The Brown Out Reset (BOR) circuit is active whenever LVR is disabled. BOR is asserted whenever the VCC voltage to the device is below an internally defined trip voltage of approximately 2.5V. This reset behaves like LVR, and in addition re-enables the LVR. That is, once VCC drops and trips BOR, the part remains in reset until VCC rises above VLVR. At that point, the tSTART delay occurs before normal operation (from reset) resumes. In suspend mode, only the BOR detection is active, giving a reset if VCC drops below approximately 2.5V. Since the device is suspended and code is not executing, this lower voltage is safe for retaining the state of all registers and memory.
10.3
Watch Dog Reset (WDR)
The Watch Dog Timer Reset (WDR) occurs when the internal Watch Dog timer rolls over. Writing any value to the write-only Watch Dog Restart Register at address 0x26 will clear the timer. The timer will roll over and WDR will occur if it is not cleared within tWATCH (10 ms minimum) of the last clear. Bit 6 of the Processor Status and Control Register is set to record this event (the register contents are set to 010X0001 by the WDR). A Watch Dog Timer Reset lasts for 2-4 ms after which the microcontroller begins execution at ROM address 0x0000. The clock mode (internal or external) is not changed by a WDR. 10.3 to 14.4 ms
(at Fosc=6 MHz)
WDR
2 - 4 ms
At least 10.3 ms since last write to WDT
WDR goes high for 2-4 ms
Execution begins at ROM Address 0x0000
Figure 10-1. Watch Dog Reset (WDR) (Address 0x26)
Document #: 38-08028 Rev. **
Page 16 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
11.0 Suspend Mode
CY7C63221/31A
The CY7C632XX part supports a versatile low-power suspend mode. In suspend mode, only an enabled interrupt or a low state on the D-/SDATA pin will wake the part. Two options are available. For lowest power, all internal circuits can be disabled, so only an external event will resume operation. Alternately, a low-power internal wake-up timer can be used to trigger the wake-up interrupt. This timer is described in Section 11.2, and can be used to periodically poll the system to check for changes, such as looking for movement in a mouse, while maintaining a low average power. The CY7C632XX is placed into a low-power state by setting the Suspend bit of the Processor Status and Control Register (Figure 18-1). All logic blocks in the device are turned off except the GPIO interrupt logic, the D-/SDATA pin input receiver, and (optionally) the wake-up timer. The clock oscillators, as well as the free-running and watch dog timers are shut down. Only the occurrence of an enabled GPIO interrupt, wake-up interrupt, or a low state on the D-/SDATA pin will wake the part from suspend (D- low indicates non-idle USB activity). Once one of these resuming conditions occurs, clocks will be restarted and the device returns to full operation after the oscillator is stable and the selected delay period expires. This delay period is determined by selection of internal vs. external clock, and by the state of the Ext. Clock Resume Delay as explained in Section 9.0. Note that executing the DI instruction to turn off all interrupts before suspending can cause an unintended wake-up from a pending interrupt. To avoid this, any interrupts not intended for waking from suspend should be disabled through the Global Interrupt Enable Register and the USB End Point Interrupt Enable Register (Section 19.0). In that case executing the DI instruction is not necessary. If a resuming condition exists when the suspend bit is set, the part will still go into suspend and then awake after the appropriate delay time. The Run bit in the Processor Status and Control Register must be set for a part to resume out of suspend. Once the clock is stable and the delay time has expired, the microcontroller will execute the instruction following the I/O write that placed the device into suspend mode before servicing any interrupt requests. To achieve the lowest possible current during suspend mode, all I/O should be held at either VCC or ground. Note that this also applies to internal port pins that may not be bonded in a particular package. Any unused bits of Ports 0 and 1 should typically be set to pull-up mode, even if the pins are not present on the package (reserved bits included). In addition, the GPIO bit interrupts (Figure 19-4) should be disabled for any pins that are not being used for a wake-up interrupt. This should be done even if the main GPIO Interrupt Enable is off. Typical code for entering suspend is shown below: ... ... ... mov a, 09h iowr FFh nop ... ; All GPIO set to low-power state (no floating pins, and bit interrupts disabled unless using for wake-up) ; Enable GPIO and/or wake-up timer interrupts if desired for wake-up ; Select clock mode for wake-up (see Section 11.1) ; Set suspend and run bits ; Write to Status and Control Register - Enter suspend, wait for GPIO / wake-up interrupt or USB activity ; This executes before any ISR ; Remaining code for exiting suspend routine
11.1
Clocking Mode on Wake-up from Suspend
When exiting suspend on a wake-up event, the device can be configured to run in either Internal or External Clock mode. The mode is selected by the state of the External Oscillator Enable bit in the Clock Configuration Register (Figure 9-2). Using the Internal Clock saves the external oscillator start-up time and keeps that oscillator off for additional power savings. The external oscillator mode can be activated when desired, similar to operation at power-up. The sequence of events for these modes is as follows: Wake in Internal Clock Mode: 1. Before entering suspend, clear bit 0 of the Clock Configuration Register. This selects Internal clock mode after suspend. 2. Enter suspend mode by setting the suspend bit of the Processor Status and Control Register. 3. After a wake-up event, the internal clock starts immediately (within 2 s). 4. A time-out period of 8 s passes, and then firmware execution begins. 5. At some later point, to activate External Clock mode, set bit 0 of the Clock Configuration Register. This halts the internal clocks while the external clock becomes stable. After an additional time-out (128 s or 4 ms, see Section 9.0), firmware execution resumes. Wake in External Clock Mode: 1. Before entering suspend, the external clock must be selected by setting bit 0 of the Clock Configuration Register. Make sure this bit is still set when suspend mode is entered. This selects External clock mode after suspend. 2. Enter suspend mode by setting the suspend bit of the Processor Status and Control Register. 3. After a wake-up event, the external oscillator is started. The clock is monitored for stability (this takes approximately 50-100 s with a ceramic resonator). 4. After an additional time-out period (128 s or 4 ms, see Section 9.0), firmware execution resumes. Document #: 38-08028 Rev. ** Page 17 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
11.2 Wake-up Timer
CY7C63221/31A
The Wake-up Timer runs whenever the Wake-up Interrupt is enabled, and is turned off whenever that interrupt is disabled. Operation is independent of whether the device is in suspend mode or if the global interrupt bit is enabled. Only the Wake-up Interrupt enable controls the Wake-up Timer. Once this timer is activated, it will give interrupts after its time-out period (see below). These interrupts continue periodically until the interrupt is disabled. Whenever the interrupt is disabled, the Wake-up Timer is reset, so that a subsequent enable always results in a full wake-up time. The Wake-up Timer can be adjusted by the user through the Wake-up Timer Adjust bits in the Clock Configuration Register (Figure 9-2). These bits clear on reset. In addition to allowing the user to select a range for the wake-up time, a firmware algorithm can be used to tune out initial process and operating condition variations in this wake-up time. This can be done by timing the wake-up interrupt time with the accurate 1.024-ms timer interrupt, and adjusting the Timer Adjust bits accordingly to approximate the desired wake-up time (see Section 23.0 for the value of tWAKE). Table 11-1. Wake-up Timer Adjust Settings Adjust Bits [2:0] (Bits [6:4] of Register 0xF8) 000 (reset state) 001 010 011 100 101 110 111 Wake-up Time 1 * tWAKE 2 * tWAKE 4 * tWAKE 8 * tWAKE 16 * tWAKE 32 * tWAKE 64 * tWAKE 128 * tWAKE
Document #: 38-08028 Rev. **
Page 18 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
12.0 General Purpose I/O Ports
CY7C63221/31A
Ports 0 and 1 provide up to 10 versatile GPIO pins that can be read or written (the number of pins depends on package type). Each pin can be configured as high-impedance inputs, inputs with internal pull-ups, open drain outputs, or traditional CMOS outputs with selectable drive strengths. Figure 12-1 shows a diagram of a GPIO port pin. Each I/O pin can be configured independently of any other pin. Port 0 is an 8-bit port, Port 1 contains 2 bits. Each bit can also be selected as an interrupt source for the microcontroller, as explained in Section 19.3.4 VCC
GPIO Mode
2
Q1 Control
Q3
Internal Data Bus
Data Out Register
14 k
GPIO Pin
Q2
Port Write
Threshold Select
Port Read Interrupt Polarity Interrupt Enable
Interrupt Logic
To Interrupt Controller
Figure 12-1. Block Diagram of GPIO Port (one pin shown) The driving state of each pin is determined by the value written to the pin's Data Register and by two Mode bits for each pin. Table 12-1 lists the configuration states based on these bits. The GPIO ports default on reset to all Data and Mode Registers cleared, so the pins are all in a high-impedance state. The available GPIO modes are listed in the table below. Table 12-1. Ports 0 Output Control Truth Table Data Register 0 0 0 0 1 1 1 1 Mode 00 Mode 01 Mode 10 Mode 11 Mode1 0 0 1 1 0 0 1 1 Mode0 0 1 0 1 0 1 0 1 Output Drive Strength Hi-Z 0 - Medium Sink 0 - Low Sink 0 - High (50 mA) Sink Hi-Z 1 Strong 1 Resistive 1 Strong Input Threshold CMOS CMOS CMOS CMOS TTL CMOS CMOS CMOS
High-impedance mode. Medium Drive CMOS Mode: 8 mA sink current / 2 mA source current. Low Drive / Resistive Mode: 2 mA sink current / 14 k pull-up resistor. High Drive CMOS Mode. 50 mA sink current / 2 mA source current.
Note that open drain mode can be achieved by fixing the Data and Mode1 Registers LOW, and switching the Mode0 register.
Document #: 38-08028 Rev. **
Page 19 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY CY7C63221/31A
Input thresholds are CMOS (centered around VCC/2), or TTL as shown in the table. Both input modes include hysteresis to minimize noise sensitivity. In suspend mode, if a pin is used for a wake-up interrupt using an external R-C circuit, CMOS mode is preferred for lowest power. Note that reading the GPIO port returns a byte based on the actual voltage of each pin, and does not affect the port's Data or Mode Registers. The Port 0 Data Register is shown in Figure 12-2. The Mode0 and Mode1 bits for the GPIO port are given in Figure 12-4 and Figure 12-5. 7 R/W P0.7 6 R/W P0.6 5 R/W P0.5 4 R/W P0.4 3 R/W P0.3 2 R/W P0.2
[1]
1 R/W P0.1
0 R/W P0.0
Figure 12-2. Port 0 Data (Address 0x00) 7 Reserved 6 Reserved 5 Reserved 4 Reserved 3 Reserved
2 Reserved
1 R/W P1.1
0 R/W P1.0
Pins 1:0 only in CY7C62231 Figure 12-3. Port 1 Data (Address 0x01)[1] 7 W P0.7 Mode0 6 W P0.6 Mode0 5 W P0.5 Mode0 4 W P0.4 Mode0 3 W P0.3 Mode0 2 W P0.2 Mode0 1 W P0.1 Mode0 0 W P0.0 Mode0
Figure 12-4. GPIO Port 0 Mode0 Register (Address 0x0A) 7 W P0.7 Mode1 6 W P0.6 Mode1 5 W P0.5 Mode1 4 W P0.4 Mode1 3 W P0.3 Mode1 2 W P0.2 Mode1 1 W P0.1 Mode1 0 W P0.0 Mode1
Figure 12-5. GPIO Port 0 Mode1 Register (Address 0x0B) 7 W Reserved 6 W Reserved 5 W Reserved 4 W Reserved 3 W Reserved 2 W Reserved 1 W P1.1 Mode0 0 W P1.0 Mode0
Figure 12-6. GPIO Port 1 Mode0 Register (Address 0x0C) 7 W Reserved 6 W Reserved 5 W Reserved 4 W Reserved 3 W Reserved 2 W Reserved 1 W P1.1 Mode1 0 W P1.0 Mode1
Figure 12-7. GPIO Port 1 Mode1 Register (Address 0x0D) Refer to section 19.3.4 for details on using the GPIO as interrupt sources.
Note: 1. When performing a read of the Port 0 or Port 1 Data registers, above, only the status of the GPIO pins will be read. The registers content will NOT be read.
Document #: 38-08028 Rev. **
Page 20 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
12.1 Auxiliary Input Port
CY7C63221/31A
Port 2 serves as an auxiliary input port. The state of the D+ and D- pins can be read from this port, as shown in Figure 12-8. In addition, the VREG, XTALIN and XTALOUT pins can serve as general purpose inputs in certain modes. For the VREG pin, refer to Section 15.0. For the XTALIN and XTALOUT pins, refer to Section 9.1. In these modes, the pin states can be read from Port 2. The Port 2 inputs all have TTL input thresholds. 7 Reserved 6 Reserved 5 R D+ (SCLK) State 4 R D- (SDATA) State 3 Reserved 2 R 1 R 0 R P2.0 VREG Pin State
P2.2 P2.1 (Internal Clock (Internal Clock Mode only) Mode only)
Figure 12-8. Port 2 Data Register (Address 0x02)
13.0
USB Serial Interface Engine (SIE)
The SIE allows the microcontroller to communicate with the USB host. The SIE simplifies the interface between the microcontroller and USB by incorporating hardware that handles the following USB bus activity independently of the microcontroller: * Bit stuffing/unstuffing * Checksum generation/checking * ACK/NAK * Token type identification * Address checking Firmware is required to handle the rest of the USB interface with the following tasks: * Coordinate enumeration by responding to set-up packets * Fill and empty the FIFOs * Suspend/Resume coordination * Verify and select Data toggle values
13.1
USB Enumeration
A typical USB enumeration sequence is shown below. In this description, `Firmware' refers to embedded firmware in the CY7C632XXA controller. 1. The host computer sends a SETUP packet followed by a DATA packet to USB address 0 requesting the Device descriptor. 2. Firmware decodes the request and retrieves its Device descriptor from the program memory tables. 3. The host computer performs a control read sequence and Firmware responds by sending the Device descriptor over the USB bus, via the on-chip FIFO. 4. After receiving the descriptor, the host sends a SETUP packet followed by a DATA packet to address 0 assigning a new USB address to the device. 5. Firmware stores the new address in its USB Device Address Register after the no-data control sequence completes. 6. The host sends a request for the Device descriptor using the new USB address. 7. Firmware decodes the request and retrieves the Device descriptor from program memory tables. 8. The host performs a control read sequence and Firmware responds by sending its Device descriptor over the USB bus. 9. The host generates control reads from the device to request the Configuration and Report descriptors. 10.Once the device receives a Set Configuration request, its functions may now be used. 11.Firmware should take appropriate action for Endpoint 1 transactions, which may occur from this point.
Document #: 38-08028 Rev. **
Page 21 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
13.2 USB Port Status and Control
CY7C63221/31A
USB status and control is regulated by the USB Status and Control Register as shown in Figure 13-1. All reserved bits must be written to zero. All bits in the register are cleared during reset. 7 R/W PS/2 Pull-up Enable 6 R/W VREG Enable 5 R/W USB ResetPS/2 Activity Interrupt Mode 4 Reserved 3 R/W USB Bus Activity 2 R/W Control Bit 2 1 R/W Control Bit 1 0 R/W Control Bit 0
Figure 13-1. USB Status and Control Register (Address 0x1F) The Control Bits (bits 2:0) allow firmware to directly drive the D+ and D- pins, as shown in Table 13-1. Outputs are driven with controlled edge rates in these modes for low EMI. For forcing these pins in USB mode (e.g., Force K for resume), Control Bit 2 should be 0. Setting Control Bit 2 HIGH puts both pins in an open-drain mode, preferred for applications such as PS/2 or LED driving. The Bus Activity bit (bit 3) is a "sticky" bit that indicates if any non-idle USB event has occurred on the USB bus. The user firmware should check and clear this bit periodically to detect any loss of bus activity. Writing a "0" to the Bus Activity bit clears it while writing a "1" preserves the current value. In other words, the firmware can clear the Bus Activity bit, but only the SIE can set it. The 1.024-ms timer interrupt service routine is normally used to check and clear the Bus Activity bit. Bits 4 is reserved and must be written as a 0. The USB - PS/2 Interrupt Mode (bit 5) selects the definition of the USB Reset / PS/2 Activity Interrupt. The default cleared state puts the interrupt into USB mode. Setting this bit high switches the interrupt definition to PS/2 mode. Details of the mode definitions are given in Section 19.3.1. VREG Enable (bit 6) enables the 3.3V output voltage on the VREG pin when set to 1. This output is provided to source current for a 1.3 k pull-up resistor connected to the D- pin. Note that, according to the USB specification, a 1.5k pull-up resistor is required. The design of the chip includes an internal series resistance of approximately 200 on the VREG output pin. Therefore, an external 1.3 k pull-up resistor is needed. On reset, this bit is cleared, so the VREG pin is in high-impedance state. PS/2 Pullup Enable (bit 7) can be set to enable the internal PS/2 pull-up resistors on the SDATA and SCLK pins. Normally the output high level on these pins is VCC, but note that the output will be clamped to approximately 1 Volt above VREG if the VREG Enable bit is set, or if the Device Address is enabled (bit 7 of the USB Device Address Register, Figure 14-1). Table 13-1. Control Modes to Force D+/D- Outputs Control Bits [2:0] 000 001 010 011 100 101 110 111 Control action Not forcing (SIE controls driver) Force K (D+ HIGH, D- LOW) Force J (D+ LOW, D- HIGH) Force SE0 (D- LOW, D+ LOW) Force D- LOW, D+ LOW Force D- LOW, D+ HiZ Force D- HiZ, D+ LOW Force D- HiZ, D+ HiZ PS/2 Mode[2] Application Any Mode USB Mode
Note: 2. For PS/2 operation, the [2:0] = 111b mode must be set initially (one time only) before using the other PS/2 force modes.
Document #: 38-08028 Rev. **
Page 22 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
14.0 USB Device
CY7C63221/31A
The CY7C632XXA supports one USB Device Address with two endpoints: EP0, EP1. Control Endpoint 0 (EP0) allows the USB host to recognize, set-up, and control the device. In particular, EP0 is used to receive and transmit control (including set-up) packets.
14.1
USB Address Register
The USB Device Address Register contains a 7-bit USB address and one bit to enable USB communication. This register is cleared during a reset, setting the USB device address to zero and marking this address as disabled. Figure 14-1 shows the format of the USB Address Register. 7 R/W Device Address Enable 6 R/W Device Address Bit 6 5 R/W Device Address Bit 5 4 R/W Device Address Bit 4 3 R/W Device Address Bit 3 2 R/W Device Address Bit 2 1 R/W Device Address Bit 1 0 R/W Device Address Bit 0
Figure 14-1. USB Device Address Register (Address 0x10) Bit 7 (Device Address Enable) in the USB Device Address Register must be set by firmware before the serial interface engine (SIE) will respond to USB traffic at this address. The Device Address in bits [6:0] must be set by firmware during the USB enumeration process to the non-zero address assigned by the USB host. This register is cleared by both hardware resets and the USB bus reset.
14.2
USB Control Endpoint
All USB devices are required to have an endpoint number 0 (EP0) that is used to initialize and control the USB device. EP0 provides access to the device configuration information and allows generic USB status and control accesses. EP0 is bidirectional as the device can both receive and transmit data. EP0 uses an 8-byte FIFO at SRAM locations 0xF8 - 0xFF, as shown in Section 8.2. The endpoint mode registers are cleared during reset. The EP0 endpoint mode register uses the format shown in Figure 14-2. 7 R/W Endpoint 0 SETUP Received 6 R/W Endpoint 0 IN Received 5 R/W Endpoint 0 OUT Received 4 R/W ACK 3 R/W Mode Bit 3 2 R/W Mode Bit 2 1 R/W Mode Bit 1 0 R/W Mode Bit 0
Figure 14-2. USB EP0 Mode Register (Address 0x12) Bits[7:5] in the endpoint 0 mode registers are "sticky" status bits that are set by the SIE to report the type of token that was most recently received by the corresponding device address. The sticky bits must be cleared by firmware as part of the USB processing. The ACK bit (bit 4) is set whenever the SIE engages in a transaction to the register's endpoint that completes with an ACK packet. The SETUP PID status (bit 7) is forced HIGH from the start of the data packet phase of the SETUP transaction, until the start of the ACK packet returned by the SIE. The CPU is prevented from clearing this bit during this interval, and subsequently until the CPU first does a IORD to this endpoint 0 mode register. Bits[6:0] of the endpoint 0 mode register are locked from CPU write operations whenever the SIE has updated one of these bits, which the SIE does only at the end of a packet transaction (SETUP... Data... ACK, or OUT... Data... ACK, or IN... Data... ACK). The CPU can unlock these bits by doing a subsequent read of this register. Because of these hardware locking features, firmware should perform an IORD after an IOWR to an endpoint 0 register to verify that the contents have changed as desired, and that the SIE has not updated these values. While the SETUP bit is set, the CPU cannot write to the EP0 FIFO. This prevents firmware from overwriting an incoming SETUP transaction before firmware has a chance to read the SETUP data. The Mode bits (bits [3:0]) control how the endpoint responds to USB bus traffic. The mode bit encoding is shown in Table 20-1. Additional information on the mode bits can be found in Table 20-2 and Table 20-3.
Document #: 38-08028 Rev. **
Page 23 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
14.3 USB Non-Control Endpoints
CY7C63221/31A
The format of the non-control endpoint mode registers is shown in Figure 14-3. EP1 uses an 8-byte FIFO at SRAM locations 0xF0-0xF7, as shown in Section 8.2. 7 R/W STALL Reserved Reserved 6 5 4 R/W ACK 3 R/W Mode Bit 3 2 R/W Mode Bit 2 1 R/W Mode Bit 1 0 R/W Mode Bit 0
Figure 14-3. USB Endpoint EP1 Mode Registers (Address 0x14) The Mode bits (bits [3:0]) of the Endpoint Mode Registers control how the endpoint responds to USB bus traffic. The mode bit encoding is shown in Table 20-1. The ACK bit (bit 4) is set whenever the SIE engages in a transaction to the register's endpoint that completes with an ACK packet. If STALL (bit 7) is set, the SIE will stall an OUT packet if the mode bits are set to ACK-IN, and the SIE will stall an IN packet if the mode bits are set to ACK-OUT. For all other modes the STALL bit must be a LOW. Bits 5 and 6 are reserved and must be written to zero during register writes.
14.4
USB Endpoint Counter Registers
There are two Endpoint Counter registers, with identical formats for both control and non-control endpoints. These registers contain byte count information for USB transactions, as well as bits for data packet status. The format of these registers is shown in Figure 14-4. 7 R/W Data 0/1 Toggle 6 R/W Data Valid Reserved Reserved 5 4 3 R/W Byte Count Bit 3 2 R/W Byte Count Bit 2 1 R/W Byte Count Bit 1 0 R/W Byte Count Bit 0
Figure 14-4. USB Device Counter Registers (Addresses 0x11, 0x13) The counter bits (bits [3:0]) indicate the number of data bytes in a transaction: For IN transactions, firmware loads the count with the number of bytes to be transmitted to the host from the endpoint FIFO. Valid values are 0 to 8 inclusive. For OUT or SETUP transactions, the count is updated by hardware to the number of data bytes received, plus 2 for the CRC bytes. Valid values are 2 to 10 inclusive. Data Valid bit 6 is used for OUT and SETUP tokens only. Data is loaded into the FIFOs during the transaction, and then the Data Valid bit will be set if a proper CRC is received. If the CRC is not correct, the endpoint interrupt will occur, but Data Valid will be cleared to a zero. Data 0/1 Toggle bit 7 selects the DATA packet's toggle state: 0 for DATA0, 1 for DATA1. For IN transactions, firmware must set this bit to the desired state. For OUT or SETUP transactions, the hardware sets this bit to the state of the received Data Toggle bit. Whenever the count updates from a SETUP or OUT transaction, the count register locks and cannot be written by the CPU. Reading the register unlocks it. This prevents firmware from overwriting a status update on incoming SETUP or OUT transactions before firmware has a chance to read the data.
15.0
USB Regulator Output
The VREG pin provides a regulated output for connecting the pull-up resistor required for USB operation. For USB, a 1.5-k resistor is connected between the D- pin and the VREG voltage, to indicate low-speed USB operation. Since the VREG output has an internal series resistance of approximately 200, the external pull-up resistor required is RPU (see Section 22.0). The regulator output is placed in a high impedance state at reset, and must be enabled by firmware by setting the VREG Enable bit in the USB Status and Control Register at address 0x1F. This simplifies the design of a combination PS/2-USB device, since the USB pull-up resistor can be left in place during PS/2 operation without loading the PS/2 line. In this mode, the VREG pin can be used as an input and its state can be read at port P2.0. Refer to Figure 12-8 for the Port 2 data register. This input has a TTL threshold. Note that enabling the device for USB (by setting the Device Address Enable bit, Figure 14-1) activates the internal regulator, even if the VREG Enable bit is cleared to 0. This insures proper USB signaling in the case where the VREG pin is used as an input, and an external regulator is provided for the USB pull-up resistor. This also limits the swing on the D- and D+ pins to about 1V above the internal regulator voltage, so the Device Address Enable bit normally should only be set for USB operating modes. Document #: 38-08028 Rev. ** Page 24 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY CY7C63221/31A
The regulator output is only designed to provide current for the USB pull-up resistor. In addition, the output voltage at the VREG pin is effectively disconnected when the CY7C632XXA device transmits USB from the internal SIE. This means that the VREG pin does not provide a stable voltage during transmits, although this does not affect USB signaling.
16.0
PS/2 Operation
The CY7C632XXA is optimized for combination USB or PS/2 devices, through the following features: 1. USB D+ and D- lines can also be used for PS/2 SCLK and SDATA pins, respectively. With USB disabled, these lines can be placed in a high-impedance state that will pull up to VCC. (Disable USB by clearing the Address Enable bit of the USB Device Address Register, Figure 14-1). 2. An interrupt is provided to indicate a long LOW state on the SDATA pin. This eliminates the need to poll this pin to check for PS/2 activity. Refer to Section 19.3.1. 3. Internal PS/2 pull-up resistors can be enabled on the SCLK and SDATA lines, so no GPIO pins are required for this task (bit 7, USB Status and Control Register, Figure 13-1). 4. The controlled slew rate outputs from these pins apply to both USB and PS/2 modes to minimize EMI. 5. The state of the SCLK and SDATA pins can be read, and can be individually driven LOW in an open drain mode. The pins are read at bits [5:4] of Port 2, and are driven with the Control Bits [2:0] of the USB Status and Control Register. 6. The VREG pin can be placed into a high-impedance state, so that a USB pull-up resistor on the D-/SDATA pin will not interfere with PS/2 operation (bit 6, USB Status and Control Register). The PS/2 on-chip support circuitry is illustrated in Figure 16-1.
Port 2.0 VREG Enable 3.3V Regulator VCC PS/2 Pull-up Enable 5 k 5 k D+/SCLK USB - PS/2 Driver D-/SDATA 200 VREG
1.3 k
Port 2.5 Port 2.4
On-chip
Off-chip
Figure 16-1. Diagram of USB-PS/2 System Connections
Document #: 38-08028 Rev. **
Page 25 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
17.0 12-bit Free-running Timer
CY7C63221/31A
The 12-bit timer operates with a 1 s tick, provides two interrupts (128 s and 1.024 ms) and allows the firmware to directly time events that are up to 4 ms in duration. The lower 8 bits of the timer can be read directly by the firmware. Reading the lower 8 bits latches the upper 4 bits into a temporary register. When the firmware reads the upper 4 bits of the timer, it is actually reading the count stored in the temporary register. The effect of this is to ensure a stable 12-bit timer value can be read, even when the two reads are separated in time.
7 R Timer Bit 7
6 R Timer Bit 6
5 R Timer Bit 5
4 R Timer Bit 4
3 R Timer Bit 3
2 R Timer Bit 2
1 R Timer Bit 1
0 R Timer Bit 0
Figure 17-1. Timer LSB Register (Address 0x24) 7 Reserved 6 Reserved 5 Reserved 4 Reserved 3 R Timer Bit 11 2 R Timer Bit 10 1 R Timer Bit 9 0 R Timer Bit 8
Figure 17-2. Timer MSB Register (Address 0x25)
1.024-ms interrupt 128-s interrupt
11
10
9
8
7
6
5
4
3
2
1
0
1 MHz clock
L3 D3
L2 D2
L1 D1
L0 D0 D7 D6 D5 D4 D3 D2 D1 D0 To Timer Registers 8
Figure 17-3. Timer Block Diagram
Document #: 38-08028 Rev. **
Page 26 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
18.0
7 R IRQ Pending
CY7C63221/31A
Processor Status and Control Register
6 R/W Watch Dog Reset 5 R/W Bus Interrupt Event 4 R/W Low Voltage or Brown-Out Reset 3 R/W Suspend 2 R Interrupt Enable Sense Reserved 1 0 R/W Run
Figure 18-1. Processor Status and Control Register (Address 0xFF) The Run bit (bit 0) is manipulated by the HALT instruction. When Halt is executed, the processor clears the run bit and halts at the end of the current instruction. The processor remains halted until a reset occurs (low-voltage, brown-out, or Watch Dog). This bit should normally be written as a 1. Bit 1 is a reserved bit that must be written as a 0. The Interrupt Enable Sense (bit 2) shows whether interrupts are enabled or disabled. Firmware has no direct control over this bit as writing a zero or one to this bit position will have no effect on interrupts. A `0' indicates that interrupts are masked off and a `1' indicates that the interrupts are enabled. This bit is further gated with the bit settings of the Global Interrupt Enable Register (0x20) and USB Endpoint Interrupt Enable Register (0x21). Instructions DI, EI, and RETI manipulate the state of this bit. Writing a 1 to the Suspend bit (bit 3) will halt the processor and cause the microcontroller to enter the suspend mode that significantly reduces power consumption. A pending, enabled interrupt or USB bus activity will cause the device to come out of suspend. After coming out of suspend, the device will resume firmware execution at the instruction following the IOWR which put the part into suspend. When writing the suspend bit with a resume condition present (such as non-idle USB activity), the suspend state will still be entered, followed immediately by the wake-up process (with appropriate delays for the clock start-up). See Section 11.0 for more details on suspend mode operation. The Low-Voltage or Brown-Out Reset (bit 4) is set to 1 during a power-on reset. Firmware can check bits 4 and 6 in the reset handler to determine whether a reset was caused by a LVR/BOR condition or a watch dog timeout. (Note that a LVR/BOR event may be followed by a watch dog reset before firmware begins executing, as explained below.) The Bus Interrupt Event (bit 5) is set whenever the event for the USB Bus Reset / PS/2 Activity interrupt occurs. The event type (USB or PS/2) is selected by the state of the USB - PS/2 Interrupt Mode bit (see Figure 13-1). The details on the event conditions that set this bit are given in Section 19.3.1. In either mode, this bit is set as soon as the event has lasted for the specified time (128-256 s), and the bit will be set even if the interrupt is not enabled. The bit is only cleared by firmware or LVR/WDR. The Watch Dog Reset (bit 6) is set during a reset initiated by the Watch Dog Timer. This indicates the Watch Dog Timer went for more than tWATCH (8 ms minimum) between Watch Dog clears. This can occur with a POR/LVR event, as noted below. IRQ pending (bit 7), when set, indicates one or more of the interrupts has been recognized as active. This bit is only valid if the Global Interrupt Enable bit is disabled. An interrupt will remain pending until its interrupt enable bit is set (registers 0x20 or 0x21) and interrupts are globally enabled. At that point the internal interrupt handling sequence will clear this bit until another interrupt is detected as pending. During power-up, or during a low-voltage reset, the Processor Status and Control Register is set to 00010001, which indicates a LVR/BOR (bit 4 set) has occurred and no interrupts are pending (bit 7 clear). Note that during the tSTART ms partial suspend at start-up (explained in Section 10.1), a Watch Dog Reset will also occur. When a WDR occurs during the power-up suspend interval, firmware would read 01010001 from the Status and Control Register after power-up. Normally the LVR/BOR bit should be cleared so that a subsequent WDR can be clearly identified. Note that if a USB bus reset (long SE0) is received before firmware examines this register, the Bus Interrupt Event bit would also be set. During a Watch Dog Reset, the Processor Status and Control Register is set to 01XX0001, which indicates a Watch Dog Reset (bit 4 set) has occurred and no interrupts are pending (bit 7 clear).
Document #: 38-08028 Rev. **
Page 27 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
19.0 Interrupts
CY7C63221/31A
Interrupts can be generated by the GPIO lines, the internal free-running timer, on various USB events, PS/2 activity, or by the Wake-up Timer. All interrupts are maskable by the Global Interrupt Enable Register and the USB End Point Interrupt Enable Register. Writing a 1 to a bit position enables the interrupt associated with that bit position. During a reset, the contents of the interrupt enable registers are cleared, along with the Global Interrupt enable bit of the CPU, effectively disabling all interrupts. 7 R/W Wake-up Interrupt Enable 6 R/W GPIO Interrupt Enable 5 R Reserved 4 R Reserved Reserved 3 2 R/W 1.024-ms Interrupt Enable 1 R/W 128-s Interrupt Enable 0 R/W USB Bus Reset / PS/2 Activity Intr. Enable
Figure 19-1. Global Interrupt Enable Register (Address 0x20) 7 Reserved 6 Reserved 5 Reserved 4 Reserved 3 Reserved 2 Reserved 1 R/W EP1 Interrupt Enable 0 R/W EP0 Interrupt Enable
Figure 19-2. USB End Point Interrupt Enable Register (Address 0x21) The interrupt controller contains a separate flip-flop for each interrupt. See Figure 19-3 for the logic block diagram of the interrupt controller. When an interrupt is generated it is first registered as a pending interrupt. It will stay pending until it is serviced or a reset occurs. A pending interrupt will only generate an interrupt request if it is enabled by the corresponding bit in the interrupt enable registers. The highest priority interrupt request will be serviced following the completion of the currently executing instruction. When servicing an interrupt, the hardware will first disable all interrupts by clearing the Global Interrupt Enable bit in the CPU (the state of this bit can be read at Bit 2 of the Processor Status and Control Register). Next, the flip-flop of the current interrupt is cleared. This is followed by an automatic CALL instruction to the ROM address associated with the interrupt being serviced (i.e., the Interrupt Vector, see Section 19.1). The instruction in the interrupt table is typically a JMP instruction to the address of the Interrupt Service Routine (ISR). The user can re-enable interrupts in the interrupt service routine by executing an EI instruction. Interrupts can be nested to a level limited only by the available stack space. The Program Counter value as well as the Carry and Zero flags (CF, ZF) are stored onto the Program Stack by the automatic CALL instruction generated as part of the interrupt acknowledge process. The user firmware is responsible for insuring that the processor state is preserved and restored during an interrupt. The PUSH A instruction should typically be used as the first command in the ISR to save the accumulator value and the POP A instruction should be used just before the RETI instruction to restore the accumulator value. The program counter, CF and ZF are restored and interrupts are enabled when the RETI instruction is executed. The DI and EI instructions can be used to disable and enable interrupts, respectively. These instructions affect only the Global Interrupt Enable bit of the CPU. If desired, EI can be used to re-enable interrupts while inside an ISR, instead of waiting for the RETI that exits the ISR. While the global interrupt enable bit is cleared, the presence of a pending interrupt can be detected by examining the IRQ Sense bit (Bit 7 in the Processor Status and Control Register).
Document #: 38-08028 Rev. **
Page 28 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY CY7C63221/31A
USB-PS/2 Clear CLR 1 USBPS/2 Int D CLK Q Enable [0] (Reg 0x20) USB-PS/2 IRQ 128 s CLR 128 s IRQ 1 ms CLR 1 ms IRQ EP0 CLR EP0 IRQ
Interrupt Vector
To CPU
CPU
IRQout
IRQ Pending
(Bit 7, Reg 0xFF)
IRQ
CLR 1 EP1 Int D CLK Q Enable [1] (Reg 0x21)
EP1 CLR EP1 IRQ
Global Interrupt Enable Bit CLR
Int Enable Sense
(Bit 2, Reg 0xFF) Controlled by DI, EI, and RETI Instructions
GPIO CLR GPIO IRQ
Interrupt Acknowledge
Wake-up CLR CLR 1 Wake-up Int D CLK Interrupt Priority Encoder Q Enable [7] (Reg 0x20) Wake-up IRQ
Figure 19-3. Interrupt Controller Logic Block Diagram
19.1
Interrupt Vectors
The Interrupt Vectors supported by the device are listed in Table 19-1. The highest priority interrupt is #1 (USB Bus Reset / PS/2 activity), and the lowest priority interrupt is #11 (Wake-up Timer). Although Reset is not an interrupt, the first instruction executed after a reset is at ROM address 0x0000, which corresponds to the first entry in the Interrupt Vector Table. Interrupt vectors occupy 2 bytes to allow for a 2 byte JMP instruction to the appropriate Interrupt Service Routine (ISR). Table 19-1. Interrupt Vector Assignments Interrupt Vector Number not applicable 1 2 3 4 5 6 7 8 9 10 11 ROM Address 0x0000 0x0002 0x0004 0x0006 0x0008 0x000A 0x000C 0x000E 0x0010 0x0012 0x0014 0x0016 Function Execution after Reset begins here. USB Bus Reset or PS/2 Activity interrupt 128-s timer interrupt 1.024-ms timer interrupt USB Endpoint 0 interrupt USB Endpoint 1 interrupt Reserved Reserved Reserved Reserved GPIO interrupt Wake-up Timer interrupt
Document #: 38-08028 Rev. **
Page 29 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
19.2 Interrupt Latency
CY7C63221/31A
Interrupt latency can be calculated from the following equation: Interrupt Latency = (Number of clock cycles remaining in the current instruction) + (10 clock cycles for the CALL instruction) + (5 clock cycles for the JMP instruction) For example, if a 5 clock cycle instruction such as JC is being executed when an interrupt occurs, the first instruction of the Interrupt Service Routine will execute a minimum of 16 clocks (1+10+5) or a maximum of 20 clocks (5+10+5) after the interrupt is issued. With a 6-MHz external resonator, internal CPU clock speed is 12 MHz, so 20 clocks take 20 / 12 MHz = 1.67 s.
19.3
Interrupt Sources
The following sections provide details on the different types of interrupt sources. 19.3.1 USB Bus Reset or PS/2 Activity
The function of this interrupt is selectable between detection of either a USB bus reset condition, or PS/2 activity. The selection is made with the USB-PS/2 Interrupt Mode bit in the USB Status and Control Register (Figure 13-1). In either case, the interrupt will occur if the selected condition exists for 256 s, and may occur as early as 128 s. A USB bus reset is indicated by a single ended zero (SE0) on the USB D+ and D- pins. The USB Bus Reset interrupt occurs when the SE0 condition ends. PS/2 activity is indicated by a continuous low on the SDATA pin. The PS/2 interrupt occurs as soon as the long low state is detected. 19.3.2 Free-Running Timer Interrupts
There are two periodic timer interrupts from the free-running timer: the 128-s interrupt and the 1.024-ms interrupt (based on a 6-MHz clock). The user should disable both timer interrupts before going into the suspend mode to avoid possible conflicts between servicing the timer interrupts first or the suspend request first when waking up. 19.3.3 USB Endpoint Interrupts
There are two USB endpoint interrupts, one per endpoint. A USB endpoint interrupt is generated after the USB host writes to a USB endpoint FIFO or after the USB controller sends a packet to the USB host. The interrupt is generated on the last packet of the transaction (e.g., on the host's ACK during an IN, or on the device ACK during on OUT). If no ACK is received during an IN transaction, no interrupt will be generated. 19.3.4 GPIO Interrupt
Each GPIO pin can serve as an interrupt input. During a reset, GPIO interrupts are disabled by clearing all GPIO interrupt enable registers. Writing a 1 to a GPIO Interrupt Enable bit enables GPIO interrupts from the corresponding input pin. These registers are shown in Figure 19-4 for Port 0 and Figure 19-5 for Port 1. In addition to enabling the desired individual pins for interrupt, the main GPIO interrupt must be enabled, as explained in Section 19.0. The polarity that triggers an interrupt is controlled independently for each GPIO pin by the GPIO Interrupt Polarity Registers. Setting a Polarity bit to "0" allows an interrupt on a falling GPIO edge, while setting a Polarity bit to "1" allows an interrupt on a rising GPIO edge. The Polarity Registers reset to 0 and are shown in Figure 19-6 for Port 0 and Figure 19-7 for Port 1. All of the GPIO pins share a single interrupt vector, which means the firmware will need to read the GPIO ports with enabled interrupts to determine which pin or pins caused an interrupt. The GPIO interrupt structure is illustrated in Figure 19-8. Note that if one port pin triggered an interrupt, no other port pins can cause a GPIO interrupt until that port pin has returned to its inactive (non-trigger) state or its corresponding port interrupt enable bit is cleared. The CY7C632XXA does not assign interrupt priority to different port pins and the Port Interrupt Enable Registers are not affected by the interrupt acknowledge process. 7 W P0.7 Intr Enable 6 W P0.6 Intr Enable 5 W P0.5 Intr Enable 4 W P0.4 Intr Enable 3 W P0.3 Intr Enable 2 W P0.2 Intr Enable 1 W P0.1 Intr Enable 0 W P0.0 Intr Enable
Figure 19-4. Port 0 Interrupt Enable Register (Address 0x04)
Document #: 38-08028 Rev. **
Page 30 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
7 Reserved 6 Reserved 5 Reserved 4 Reserved 3 Reserved 2 Reserved
CY7C63221/31A
1 W P1.1 Intr Enable 0 W P1.0 Intr Enable
Figure 19-5. Port 1 Interrupt Enable Register (Address 0x05) 7 W P0.7 Intr Polarity 6 W P0.6 Intr Polarity 5 W P0.5 Intr Polarity 4 W P0.4 Intr Polarity 3 W P0.3 Intr Polarity 2 W P0.2 Intr Polarity 1 W P0.1 Intr Polarity 0 W P0.0 Intr Polarity
Figure 19-6. Port 0 Interrupt Polarity Register (Address 0x06) 7 Reserved 6 Reserved 5 Reserved 4 Reserved 3 Reserved 2 Reserved 1 W P1.1 Intr Polarity 0 W P1.0 Intr Polarity
Figure 19-7. Port 1 Interrupt Polarity Register (Address 0x07)
Port Bit Interrupt Polarity Register
OR Gate (1 input per GPIO pin)
GPIO Interrupt Flip Flop 1 D Q Interrupt Priority Encoder IRQout Interrupt Vector
GPIO Pin
M U X
CLR
1 = Enable 0 = Disable IRA
Port Bit Interrupt Enable Register
1 = Enable 0 = Disable
Global GPIO Interrupt Enable (Bit 6, Register 0x20)
Figure 19-8. GPIO Interrupt Diagram
19.3.5
Wake-up Interrupt
The internal Wake-up Timer can be used to wake the part from suspend mode (although it can also provide an interrupt when the part is awake). The Wake-up Timer is cleared whenever the Wake-up Interrupt enable bit (Register 0x20) is written to a 0, and runs whenever that bit is written to a 1. When the interrupt is enabled, the Wake-up Timer provides periodic interrupts with period tWAKE. The wake-up time can be adjusted by firmware as explained in Section 11.2.
Document #: 38-08028 Rev. **
Page 31 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
20.0 USB Mode Tables
CY7C63221/31A
The following tables give details on mode setting for the USB Serial Interface Engine.
Table 20-1. USB Register Mode Encoding Mode Disable Nak In/Out Status Out Only Stall In/Out Ignore In/Out Reserved Status In Only Reserved Nak Out Ack Out(STALL[3] = 0) Ack Out(STALL[3] = 1) Nak Out - Status In Ack Out - NAK In Nak In Ack IN(STALL[3] = 0) Ack IN(STALL[3] = 1) Nak In - Status Out Ack In - Status Out Encoding 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1001 1010 1011 1100 1101 1101 1110 1111 Setup ignore accept accept accept accept ignore accept ignore ignore ignore ignore accept accept ignore ignore ignore accept accept In ignore NAK stall stall ignore ignore TX 0 TX cnt ignore ignore ignore TX 0 NAK NAK TX cnt stall NAK TX cnt Out ignore NAK check stall ignore always stall ignore NAK ACK stall NAK ACK ignore ignore ignore check check Comments Ignore all USB traffic to this endpoint Forced from Setup on Control endpoint, from modes other than 0000 For control endpoints For control endpoints For control endpoints Not Complaint or Low-speed device For control endpoints Not Complaint or Low-speed device An ACK from mode 1001 --> 1000 This mode is changed by SIE on issuance of ACK --> 1000 For control endpoints This mode is changed by SIE on issuance of ACK --> 0001 An ACK from mode 1101 --> 1100 This mode is changed by SIE on issuance of ACK --> 1100 An ACK from mode 1111 --> 1110 Ack In - Status Out This mode is changed by SIE on issuance of ACK -->1110
The contents of the `Encoding' column represent bits [3:0] of the endpoint 0 and endpoint 1 mode registers at addresses 0x12 and 0x14 respectively. These values determine how the SIE responds to different tokens sent to the endpoints. The `Setup', `In', and `Out' columns represent the SIE's responses to these token types when in different modes. A disabled endpoint will remain disabled until changed by firmware, and all endpoints reset to the disabled state. Any SETUP packet to an enabled endpoint with mode set to accept SETUPs will be changed by the SIE to 0001 (NAKing). Any mode set to accept a SETUP will ACK a valid SETUP transaction. Most modes that control transactions involving an ending ACK will be changed by the SIE to a corresponding mode which NAKs subsequent packets following the ACK. Exceptions are modes 1010 and 1110. A Control endpoint has three extra status bits for PID (Setup, In and Out), but must be placed in the correct mode to function as such. Non-Control endpoints should not be placed into modes that accept SETUPs. A `check' on an `Out' token during a Status transaction checks to see that the `Out' is of zero length and has a Data Toggle (Data1/0) of 1. If these conditions are true, the SIE responds with an ACK. A `TX cnt' on an `In' token means that the SIE will transmit the number of bytes specified in the count register in response to any `In' token. A `TX 0' on an In token means that the SIE will transmit a zero byte packet in response to any `In' status stage. An `ignore' means that the device ignores the tokens.
Note: 3. STALL bit is the bit 7 of the USB Non-Control Device Endpoint Mode registers. Refer to Section 14.3 for more explanation.
.
Document #: 38-08028 Rev. **
Page 32 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
Table 20-2. Decode table for Table 20-3: "Details of Modes for Differing Traffic Conditions" Properties of incoming packet Encoding Status bits What the SIE does to Mode bits PID Status bits
End Point Mode 3 2 1 0 Token Setup In Out The validity of the received data The quality status of the DMA buffer The number of received bytes Acknowledge phase completed count buffer dval DTOG DVAL COUNT Setup In Out ACK End Point Mode 3 2 1 0 Response Int
CY7C63221/31A
Interrupt?
Legend:
UC: unchanged x: don't care
TX: transmit RX: receive
TX0: transmit 0-length packet
available for Control endpoint only
The response of the SIE can be summarized as follows: 1. The SIE will only respond to valid transactions, and will ignore non-valid ones. 2. The SIE will generate an interrupt when a valid transaction is completed or when the FIFO is corrupted. FIFO corruption occurs during an OUT or SETUP transaction to a valid internal address, that ends with a non-valid CRC. 3. An incoming Data packet is valid if the count is < Endpoint Size + 2 (includes CRC) and passes all error checking; 4. An IN will be ignored by an OUT configured endpoint and visa versa. 5. The IN and OUT PID status is updated at the end of a transaction. 6. The SETUP PID status is updated at the beginning of the Data packet phase. 7. The entire Endpoint 0 mode register and the Count register are locked to CPU writes at the end of any transaction to that endpoint in which an ACK is transferred. These registers are only unlocked by a CPU read of these registers, and only if that read happens after the transaction completes. This represents about a 1-s window in which the CPU is locked from register writes to these USB registers. Normally the firmware should perform a register read at the beginning of the Endpoint ISRs to unlock and get the mode register information. The interlock on the Mode and Count registers ensures that the firmware recognizes the changes that the SIE might have made during the previous transaction.
Document #: 38-08028 Rev. **
Page 33 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
Table 20-3. Details of Modes for Differing Traffic Conditions
End Point Mode 3 2 1 0 token count buffer dval DTOG DVAL COUNT PID Setup In Out ACK Set End Point Mode 3 2 1 0 response int
CY7C63221/31A
Setup Packet (if accepting) SeeTable 20-1. SeeTable 20-1. See Table 20-1. Disabled 0 0 0 0 x x UC x UC UC UC UC UC UC UC NoChange ignore no Setup Setup Setup <= 10 > 10 x data junk junk valid x invalid updates updates updates 1 updates 0 updates updates updates 1 1 1 UC UC UC UC UC UC 1 UC UC 0 0 0 1 ACK ignore ignore yes yes yes
NoChange NoChange
Nak In/Out 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 Out Out Out In x > 10 x x UC UC UC UC x x invalid x UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC 1 1 UC UC UC UC UC UC UC NoChange NoChange NoChange NoChange NAK ignore ignore NAK yes no no yes
Ignore In/Out 0 0 1 1 0 0 0 0 Out In x x UC UC x x UC UC UC UC UC UC UC UC UC UC UC UC UC UC NoChange NoChange ignore ignore no no
Stall In/Out 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 Out Out Out In x > 10 x x UC UC UC UC x x invalid x UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC 1 1 UC UC UC UC UC UC UC NoChange NoChange NoChange NoChange Stall ignore ignore Stall yes no no yes
Control Write Normal Out/NAK In 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 Out Out Out In <= 10 > 10 x x data junk junk UC valid x invalid x updates updates updates UC 1 updates 0 UC updates updates updates UC UC UC UC UC UC UC UC 1 1 1 1 UC 1 UC UC UC 0 0 0 1 ACK ignore ignore NAK yes yes yes yes
NoChange NoChange NoChange
NAK Out/premature status In 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 Out Out Out In <= 10 > 10 x x UC UC UC UC valid x invalid x UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC 1 1 UC UC UC UC UC UC 1 NoChange NoChange NoChange NoChange NAK ignore ignore TX 0 yes no no yes
Status In/extra Out 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 Out Out Out In <= 10 > 10 x x UC UC UC UC valid x invalid x UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC 1 1 UC UC UC UC UC UC 1 0 0 1 1 Stall ignore ignore TX 0 yes no no yes
NoChange NoChange NoChange
Control Read Normal In/premature status Out 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Out Out Out Out Out In 2 2 != 2 > 10 x x UC UC UC UC UC UC valid valid valid x invalid x 1 0 updates UC UC UC 1 1 1 UC UC UC updates updates updates UC UC UC UC UC UC UC UC UC UC UC UC UC UC 1 1 1 1 UC UC UC 1 UC UC UC UC 1 NoChange 0 0 ACK yes yes yes no no yes
0 1 1 Stall 0 1 1 Stall ignore ignore
NoChange NoChange 1
1 1 0 ACK (back)
Nak In/premature status Out 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 Out Out Out Out Out In 2 2 != 2 > 10 x x UC UC UC UC UC UC valid valid valid x invalid x 1 0 updates UC UC UC 1 1 1 UC UC UC updates updates updates UC UC UC UC UC UC UC UC UC UC UC UC UC UC 1 1 1 1 UC UC UC 1 UC UC UC UC UC NoChange 0 0 ACK yes yes yes no no yes
0 1 1 Stall 0 1 1 Stall ignore ignore NAK
NoChange NoChange NoChange
Document #: 38-08028 Rev. **
Page 34 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
Table 20-3. Details of Modes for Differing Traffic Conditions (continued)
End Point Mode 3 2 1 0 token count buffer dval DTOG DVAL COUNT PID Setup In Out ACK Set End Point Mode 3 2 1 0 response int
CY7C63221/31A
Status Out/extra In 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 Out Out Out Out Out In 2 2 != 2 > 10 x x UC UC UC UC UC UC valid valid valid x invalid x 1 0 updates UC UC UC 1 1 1 UC UC UC updates updates updates UC UC UC UC UC UC UC UC UC UC UC UC UC UC 1 1 1 1 UC UC UC 1 UC UC UC UC UC NoChange 0 0 ACK yes yes yes no no yes
0 1 1 Stall 0 1 1 Stall ignore ignore
NoChange NoChange 0
0 1 1 Stall
Out endpoint Normal Out/Erroneous In 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 Out Out Out In <= 10 > 10 x x data junk junk UC valid x invalid x updates updates updates UC 1 updates 0 UC updates updates updates UC UC UC UC UC UC UC UC UC 1 1 1 UC 1 UC UC UC 1 0 0 0 ACK ignore ignore ignore yes yes yes no
NoChange NoChange NoChange
NAK Out/Erroneous In 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 Out Out Out In <= 10 > 10 x x UC UC UC UC valid x invalid x UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC UC 1 UC UC UC UC UC UC UC NoChange NoChange NoChange NoChange NAK ignore ignore ignore yes no no no
Reserved 0 0 1 1 0 0 1 1 Out In x x updates UC updates x updates UC updates UC updates UC UC UC UC UC 1 UC 1 UC NoChange NoChange RX ignore yes no
In endpoint Normal In/Erroneous Out 1 1 1 1 0 0 1 1 Out In x x UC UC x x UC UC UC UC UC UC UC UC UC 1 UC UC UC 1 NoChange 1 ignore no yes
1 0 0 ACK (back)
NAK In/Erroneous Out 1 1 1 1 0 0 0 0 Out In x x UC UC x x UC UC UC UC UC UC UC UC UC 1 UC UC UC UC NoChange NoChange ignore NAK no yes
Reserved 0 0 1 1 1 1 1 1 Out In x x UC UC x x UC UC UC UC UC UC UC UC UC 1 UC UC UC UC NoChange NoChange ignore TX no yes
Document #: 38-08028 Rev. **
Page 35 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
21.0 Absolute Maximum Ratings
CY7C63221/31A
Storage Temperature ..........................................................................................................................................-65C to +150C Ambient Temperature with Power Applied ...............................................................................................................-0C to +70C Supply Voltage on VCC relative to VSS.................................................................................................................... -0.5V to +7.0V DC Input Voltage........................................................................................................................................... -0.5V to +VCC+0.5V DC Voltage Applied to Outputs in High Z State............................................................................................ -0.5V to + VCC+0.5V Maximum Total Sink Output Current into Port 0 and 1 and Pins.......................................................................................... 70 mA Maximum Total Source Output Current into Port 0 and 1 and Pins ..................................................................................... 30 mA Maximum On-chip Power Dissipation on any GPIO Pin ......................................................................................................50 mW Power Dissipation ..............................................................................................................................................................300 mW Static Discharge Voltage .................................................................................................................................................. > 2000V Latch-up Current ............................................................................................................................................................ > 200 mA
Document #: 38-08028 Rev. **
Page 36 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
22.0 DC Characteristics
Parameter General Operating Voltage Operating Voltage VCC Operating Supply Current Standby Current--No Wake-up Osc Standby Current--With Wake-up Osc Programming Voltage (disabled) Resonator Start-up Interval Input Leakage Current Max. ISS GPIO Sink Current Max. ICC GPIO Source Current Low Voltage & Power On Reset Low-Voltage Reset Trip Voltage VCC Power-on Slew Time USB Interface VREG Regulator Output Voltage Capacitance on VREG Pin Static Output High, driven Static Output Low Static Output High, idle or suspend Differential Input Sensitivity Differential Input Common Mode Range Single Ended Receiver Threshold Transceiver Capacitance Hi-Z State Data Line Leakage External Bus Pull-up Resistance (D-) External Bus Pull-down Resistance PS/2 Interface Static Output Low Internal PS/2 Pull-up Resistance General Purpose I/O Interface Pull-up Resistance Input Threshold Voltage, CMOS mode Input Threshold Voltage, CMOS mode Input Hysteresis Voltage, CMOS mode Input Threshold Voltage, TTL mode Output Low Voltage, high drive mode Output Low Voltage, medium drive mode Output Low Voltage, low drive mode Output High Voltage, strong drive mode Pull-down Resistance, XTALIN pin Min. VLVR 4.35 Max. 5.5 5.25 25 25 75 0.4 256 1 70 30 Unit V V mA A A V s A mA mA Conditions Note 4 Note 4 VCC=5.5V, no GPIO loading Oscillator off, D- > 2.7V Oscillator off, D- > 2.7V VCC = 5.0V, ceramic resonator Any I/O pin Cumulative across all ports[5] Cumulative across all ports[5]
CY7C63221/31A
FOSC = 6 MHz; Operating Temperature = 0 to 70C
VCC1 VCC2 ICC ISB1 ISB2 VPP TRSNTR IIL ISNK ISRC
-0.4
VLVR tVCCS VRG CREG VOHU VOLU VOHZ VDI VCM VSE CIN ILO RPU RPD VOLP RPS2 RUP VICR VICF VHC VITTL VOL1A VOL1B VOL2 VOL3 VOH RXIN
3.5
4.0 100
V ms
VCC below VLVR for >100 ns[6] linear ramp: 0 to 4V[7] Load = RPU +RPD[8, 9] External cap not required RPD to Gnd[4] With RPU to VREG pin RPD connected D- to Gnd, RPU connected D- to VREG pin[4] |(D+)-(D-)|
3.0 2.8 2.7 0.2 0.8 0.8 -10 1.274 14.25
3.6 300 3.6 0.3 3.6
V pF V V V V V V pF A k k
2.5 2.0 20 10 1.326 15.75
0V < Vin<3.3V (D+ or D- pins) 1.3 k 2% to VREG[10] 15 k 5% to Gnd
3
0.4 7
V k
Isink = 5 mA, SDATA or SCLK pins SDATA, SCLK pins, PS/2 Enabled
8 40% 35% 3% 0.8
24 60% 55% 10% 2.0 0.8 0.4 0.4 0.4
k VCC VCC VCC V V V V V V k
Low to high edge, Port 0 or 1 High to low edge, Port 0 or 1 High to low edge, Port 0 or 1 Ports 0,1 and 2 IOL1 = 50 mA, Ports 0 or 1[4]) IOL1 = 25 mA, Ports 0 or 1[4] IOL2 = 8 mA, Ports 0 or 1[4] IOL3 = 2 mA, Ports 0 or 1[4] Port 0 or 1, IOH = 2 mA[4] Internal Clock Mode only
VCC - 2 50
Document #: 38-08028 Rev. **
Page 37 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
23.0 Switching Characteristics
Description Internal Clock Mode FICLK FICLK2 Internal Clock Frequency Internal Clock Frequency, USB mode External Oscillator Mode TCYC TCH TCL TSTART TWAKE TWATCH Input Clock Cycle Time Clock HIGH Time Clock LOW Time Reset Timing Time-out Delay after LVR/BOR Internal Wake-up Period Watch Dog Timer Period USB Driver Characteristics TR TF TRFM VCRS Transition Rise Time Transition Fall Time Rise/Fall Time Matching Output Signal Crossover Voltage USB Data Timing TDRATE TDJR1 TDJR2 TDEOP TEOPR2 TEOPT TUDJ1 TUDJ2 TLST Low Speed Data Rate Receiver Data Jitter Tolerance Receiver Data Jitter Tolerance Differential to EOP transition Skew EOP Width at receiver Source EOP Width Differential Driver Jitter Differential Driver Jitter Width of SE0 during diff. transition Non-USB Mode Driver Characteristics TFPS2 SDATA / SCK Transition Fall Time 50 300 ns 1.4775 -75 -45 -40 670 1.25 -95 -150 1.50 95 150 210 1.5225 75 45 100 Mb/s ns ns ns ns s ns ns ns Note 15 CLoad = 150 pF to 600 pF To next transition, Figure 23-5 To paired transition, Figure 23-5 Ave. Bit Rate (1.5Mb/s 1.5%) To Next Transition[14] For Paired Transitions[14] Note 14 Accepts as EOP[14] 75 75 80 1.3 300 300 125 2.0 ns ns % V 10% to 90%[4, 13] 10% to 90%[4, 13] tr/tf[4, 13]
[4, 13]
CY7C63221/31A
Parameter
Min. 5.7 5.91
Max. 6.3 6.09
Unit MHz MHz
Conditions Internal Clock Mode enabled Internal Clock Mode enabled, Bit 2 of register 0xF8h is set (Precision USB Clocking)[11]
164.2 0.45 tCYC 0.45 tCYC 24 1 10.1
169.2
ns ns ns
USB Operation, with External 1.5% Ceramic Resonator or Crystal
60 5 14.6
ms ms ms Enabled Wake-up Interrupt[12] FOSC = 6 MHz
Notes: 4. Full functionality is guaranteed in VCC1 range, except USB transmitter specifications and GPIO output currents are guaranteed for VCC2 range. 5. Total current cumulative across all Port pins, limited to minimize Power and Ground-Drop noise effects. 6. LVR is automatically disabled during suspend mode. 7. LVR will re-occur whenever VCC drops below VLVR. In suspend or with LVR disabled, BOR occurs whenever VCC drops below approximately 2.5V. 8. VRG specified for regulator enabled, idle conditions (i.e., no USB traffic), with load resistors listed. During USB transmits from the internal SIE, the VREG output is not regulated, and should not be used as a general source of regulated voltage in that case. During receive of USB data, the VREG output drops when D- is low due to internal series resistance of approximately 200 at the VREG pin. 9. In suspend mode, VRG is only valid if RPU is connected from D- to VREG pin, and RPD is connected from D- to ground. 10. The 200 internal resistance at the VREG pin gives a standard USB pull-up using this value. Alternately, a 1.5 k, 5%pull-up from D- to an external 3.3V supply can be used. 11. Initially FICLK2=FICLK, until a USB packet is received. 12. Wake-up time for Wake-up Adjust Bits cleared to 000b (minimum setting) 13. CLoad = 200 to 600 pF. 14. Measured at cross-over point of differential data signals. 15. Non-USB Mode refers to driving the D-/SDATA and/or D+/SCLK pins with the Control Bits of the USB Status and Control Register, with Control Bit 2 HIGH.
Document #: 38-08028 Rev. **
Page 38 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
.
CY7C63221/31A
TCYC TCH
CLOCK
TCL Figure 23-1. Clock Timing
Voh Vcrs Vol
D+
TR
90% 10% 90%
TF
10%
D-
Figure 23-2. USB Data Signal Timing
TPERIOD Differential Data Lines
TJR TJR1 TJR2
Consecutive Transitions N * TPERIOD + TJR1 Paired Transitions N * TPERIOD + TJR2
Figure 23-3. Receiver Jitter Tolerance
Document #: 38-08028 Rev. **
Page 39 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY CY7C63221/31A
TPERIOD Differential Data Lines
Crossover Point
Crossover Point Extended
Diff. Data to SE0 Skew N * TPERIOD + TDEOP
Source EOP Width:
TEOPT
Receiver EOP Width: TEOPR1, TEOPR2
Figure 23-4. Differential to EOP Transition Skew and EOP Width
TPERIOD Differential Data Lines
Crossover Points
Consecutive Transitions N * TPERIOD + TxJR1 Paired Transitions N * TPERIOD + TxJR2
Figure 23-5. Differential Data Jitter
Document #: 38-08028 Rev. **
Page 40 of 43
FOR
FOR
enCoReTM USB
PRELIMINARY
24.0 Ordering Information
EPROM Size 3 KB 3 KB 3 KB Package Name P1 P3 S3 Package Type 16-Pin (300-Mil) PDIP 18-Pin (300-Mil) PDIP 18-Pin Small Outline Package Operating Range Commercial Commercial Commercial
CY7C63221/31A
Ordering Code CY7C63221A-PC CY7C63231A-PC CY7C63231A-SC
25.0
Package Diagrams
16-Lead (300-Mil) Molded DIP P1
51-85009-A
18-Lead (300-Mil) Molded DIP P3
51-85010-A
Document #: 38-08028 Rev. **
Page 41 of 43
enCoReTM USB
PRELIMINARY CY7C63221/31A
18-Lead (300-Mil) Molded SOIC S3
51-85023-A
Document #: 38-08028 Rev. **
Page 42 of 43
(c) Cypress Semiconductor Corporation, 2002. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in a Cypress Semiconductor product. Nor does it convey or imply any license under patent or other rights. Cypress Semiconductor does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress Semiconductor products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress Semiconductor against all charges.
FOR
FOR
enCoReTM USB
PRELIMINARY CY7C63221/31A
Document Title: CY7C63221/31A enCoReTM Low-speed USB Peripheral Controller Document Number: 38-08028 REV. ** ECN NO. 116226 Issue Date 06/17/02 Orig. of Change DSG Description of Change Change from Spec number: 38-01049 to 38-08028
Document #: 38-08028 Rev. **
Page 43 of 43


▲Up To Search▲   

 
Price & Availability of CY7C63231

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X